делать всë через скрипт и надо всегда использовать getComponent<>() для получения компонента а другой говорит что надо использовать атрибут [SerializedField] и назначать перемнную через инспектор (там он ещë показывал что через OnValidate() метод можно) мол через getComponent игра назначает при запуске из-за чего игра будет дольше загружаться. Вопрос является ли из этого что-то плохой практикой, а так-же реально ли игра начнëт дольше запускаться если сделать по типу 1000 GetComponent<>()? И можно ли использовать и то и то в одном проекте, будет ли это считаться разными стилями и ухудшением чтения скрипта?
Смотрий скорасть загрузкий уменшиша не сверх значително тип пару милисекунд а вот начот вибора нечиво не посоветую
Ну,хз. Если думать логически, то те компоненты которые могут удалятся во время игры лучше через гет, но так то это не очень влияет
GetComponent тяжёлая операция, все, что можно - лучше прокидывать руками через инспектор
Если у тебя 1 уровень, то можно и ручками, иначе проще найти все компоненты через getComponent и закешировать. Один раз вызвать это норм. Можно даже искать объекты через Find. Нельзя делать это в Update.
Для рантайма тяжелая, на инициализации почему бы и не использовать?
Если например, ты спавшнишь 1000 объектов, у которых в Awake GetComponent, то лучше через инспектор прокинуть.
Зачем накладывать дополнительную нагрузку на инициализацию? Если у вас спаунится 1000 юнитов и у них в старте один геткомпонент, то вот вам и 1000 вызовов в рантайме. А если в юните два вызова - две тысячи и тд
Вряд ли у них речь о такой ситуации
ну загрузится у тебя игра не за 0,5 секунды, а за 1 на скрине 2000 гет компонентов занимают 8 мс
Геткомпонент оч прожорливый, если поля не назначаются динамически, то лучше через инспектор протягивать
Обсуждают сегодня