В Godot, когда я GetNode, могу ли я получить доступ к узлам времени выполнения или узлам текущей сцены?

Сегодня я обнаружил, что Годо на самом деле настраивает узлы времени выполнения. Вы можете увидеть, что я имею в виду, ниже:

Godot Debug удаленных узлов

Когда я запускаю игру с параметрами отладки, я вижу эти узлы на вкладке «Удаленный» в доке сцены. Итак, это заставило меня задуматься ... Когда я GetNode, я действительно получаю доступ к этим узлам времени выполнения?

В качестве примера рассмотрим эти три отдельные сцены:

Foo
> foo: Node2D

Bar
> bar: Node2D

Container
> container: Node2D
>> foo: Node2D (injecting Foo)
>> bar: Node2D (injecting Bar)

В этом случае Container сцена является родительской и импортирует / вводит foo и bar. Итак, в Foo.cs, могу ли я получить доступ к инжектору, который является узлом container, как показано ниже:

// Foo.cs
Node2D container = (Node2D)GetNode("/root/container");

Или это не удастся?


Среда

  • Годо Моно 3.2
  • Моно JIT-компилятор 6.4.0
  • Манджаро 19.0.2

person Erdin Eray    schedule 13.04.2020    source источник


Ответы (1)


Когда я использую GetNode, действительно ли я получаю доступ к этим узлам времени выполнения?

Вы можете использовать GetNode для доступа к узлам, созданным во время выполнения. Только не забудьте сделать это не слишком рано, если узел действительно добавляется после вызова обратного вызова _Ready.

Многие встроенные узлы Godot будут экземплярами дочерних узлов (в основном, сложные элементы управления с графическим интерфейсом, такие как GraphEdit).

person Calinou    schedule 14.04.2020
comment
Кажется, это правда. Я еще немного поиграю и, как только я буду уверен, что это так, я приму это как ответ. Большое тебе спасибо. - person Erdin Eray; 14.04.2020