Godot. Unique Scene Name
Всем привет, затрону один важный момент касающийся организации кода. По моим наблюдениям новички туторами обмажутся, а потом у них возникают проблемы, а все из-за использования абсолютных путей. Я про два конкретных способа get_parent() и get_node().
Создам тестовый проект для наглядности.
Вроде бы все хорошо, никаких проблем нету, мы же ничего не собираемся менять никогда в структуре этой сцены<sarcasm> 100% можно быть уверенным только в одном, что изменения будут, в геймдеве особенно)
Немножко изменим структуру сцены.
Если уж хотите все одно таким образом обращаться к нодам или сценам нужным, то Godot предоставляет очень удобный инструмент.
Теперь для помеченных таким образом сцен не нужно указывать абсолютный путь, годот все сделает за вас. get_parent() почти всегда порочная практика, в конце поста покажу один пример)
Если потомку надо знать своего родителя, то пусть родитель и сообщает ему об этом.
Все теперь можно их перетаскивать по сцене как угодно, уже ничего не сломается.
Особенно это удобно при создании GUI, адаптивный интерфейс как правило требует много разнообразных вложений и родительских сцен, чтобы все там само красивенько расползалось по экрану, с таким подходом сэкономите себе кучу нервов и времени)
И обещанное про get_parent()
Для наглядности в _physics_process добавил 3 get_parent()
на картинке ниже видно, что _physics_process выполняется на 30% дольше чем _velocity_computed
А теперь скрин профайлера без этих 3-х get_parent()
Как видите на 25% быстрее стал выполняться, чем _velocity_computed
Если вам кажется что это пустяк, то вот видосик. Ролик коротенький, но 60мб получился, заль. ютуб. В первом случае у меня фпс начинал падать ниже 60 уже после спавна 600 человечков, во втором это число выросло до почти 2100.
Всем спасибо за внимание.
Небольшой и уютный чатик нашего сообщества https://t.me/Godot_pikabu
Частенько действительно полезные вещи подсказывают, удобно, с любым затупом можно просто спросить))
Свидетели Godot'овы
85 постов312 подписчиков
Правила сообщества
Нельзя писать плохой про Godot и можно писать хороший про Godot. Borat.jpg
Упоминание других движков допустимо только в технических сравнениях иначе - вы юнитист и бог вам судья.