Найти в Дзене
Игровой движок Godot engine

№7. Пути внутри проекта.

В годо вы можете выстраивать свою сцену по разному. И от того на какой ноде в иерархии подключен скрипт, зависит то, каким образом вы будете получать информацию с окружающих нод.
Для примера начем с классической схемы - скрипт подключен в корневой ноде. А под ней находятся две ноды - нода_1 и нода_2.
Для того чтобы получить данные из Нода_2, мы пишем get_node(), и далее годо вам предложит список

В годо вы можете выстраивать свою сцену по разному. И от того на какой ноде в иерархии подключен скрипт, зависит то, каким образом вы будете получать информацию с окружающих нод.

Для примера начем с классической схемы - скрипт подключен в корневой ноде. А под ней находятся две ноды - нода_1 и нода_2.

Для того чтобы получить данные из Нода_2, мы пишем get_node(), и далее годо вам предложит список всех доступных нод.

-2

Сразу укажу что вместо длинного get_node(), можно использовать знак доллара $. И в таком случае путь будет выглядеть как $Node_1

Теперь давайте положим ноду_2 внутрь ноды_1. Подключим к ноде_2 скрипт, и попробуем достучаться до ноды_1

-3

Пишем get_node().... и ничего не происходит.
А всё потому, что гет_нод может смотреть только вниз по иерархии. А нам надо заглянуть выше.

Для этого используется метод get_parent(). Мы берем родительскую ноду, и уже из под неё можем смотреть какие есть "дети".

-4

В нашем случае видно что под нода_1 есть нода_2

Подняться выше по иерархии можно альтернативно используя get_node c "точками". Каждая точка тут - это подъем на уровень выше.

-5

Мы так же можем достучаться до любой ноды написав полный путь до неё.

-6

Ну а если совсем заблудились и лень писать пути, то можно просто воспользоваться методом find_node(). Пишете имя искомой ноды и годо сам всё найдет.

Как видим, в доступе к нодам нет ничего сложного.
Мы можем использовать
get_tree() для получения всего «дерева» сцены.
Например
get_tree().get_root() выдаст нам корневой вьюпорт.

А если дописать get_tree().get_root().get_child(0), то мы получим ноду home. (нода home у нас самая первая, поэтому у неё индекс = 0)
Можно обратиться напрямую к ноде
home через — get_tree().get_root().get_node("home")

За сим пожалуй всё. Надеюсь данная статья была вам полезна. Удачи в изучении годо !