Работая в Годо 3.2, у меня есть сцена Player.tscn
. В верхней части Player.tscn
у меня есть "class_name Player
"
Теперь при создании экземпляра Player
у меня, насколько я понимаю, есть два варианта:
player = Player.new()
or
player = load("res://Player.tscn").instance() as Player
Мне кажется, лучше всего первая версия ... но это явно не так. Если я использую .new()
, он утверждает, что у него нет дочерних элементов, и любые вызовы методов, которые пытаются добраться до его дочерних элементов (например, .get_texture()
в Sprite
), производят такие вещи, как «Attempt to call function 'get_texture' in base 'null instance' on a null instance
», потому что, очевидно, Player
не имеет дочерних элементов.
Конечно, по второму способу все работает нормально. Но почему? Почему я не могу просто использовать .new()
, если я зарегистрировал его как класс с помощью class_name
?