Как стать автором
Обновить

Комментарии 3

Подобные способы взятия узлов ($AnimatedSprite, $Timer и прочие $...) стоит кэшировать, например:
onready var this_sprite = $AnimatedSprite
onready var for_timer = $Timer

чтобы обращаться к ним так:
this_sprite.play(«show») вместо $AnimatedSprite.play(«show»)

Становится менее наглядно, но следует помнить, что каждый такой $… аналогичен вызову get_node() и при использовании в цикле потери времени на это могут стать заметными. Попутно от подобного кэширования дополнительная польза на будущее, если целевой узел вдруг сместится в иерархии, то не надо будет править пути к нему по всему коду.
А так, вне циклов, обращения через $… более оправданы, в том плане, что так проще/нагляднее и потери могут быть почти неощутимы.
Спасибо о рекомендации кэшировать взятия узлов, если они будут использованы в циклах. Я о таком не знал, так что очень благодарен за данный совет.
Просто в различных примерах, да и в исходниках, любят писать наглядным образом, везде используя $… Но есть вот такие нюансы, малозаметные пока подобных обращений в коде немного и они не начинают массово скапливаться в цикле.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории