В Godot, когда я получаю GetNode, я получаю доступ к узлам времени выполнения или узлам текущей сцены? - PullRequest
0 голосов
/ 14 апреля 2020

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

godot debug remote nodes

Когда я запускаю игру с опциями отладки, я вижу эти узлы на вкладке «Удаленный» в сцене док. Итак, это заставляет меня задуматься ... Когда я 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");

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


Environment

  • Godot Mono 3.2
  • Mono JIT-компилятор 6.4.0
  • Manjaro 19.0.2

1 Ответ

1 голос
/ 14 апреля 2020

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...