Pull to refresh
0
0

Программист

Send message
Можно узнать, сколько у вас получилось Draw Call и Tris?
Такой вариант тоже жизнеспособен, тут уже много вариантов реализации — какой самый правильный и удобный уже каждый решит сам) Тут просто сам факт что проще завести локальную переменную и работать с ней, чем работать с массивом.
Например у меня в игре, в моем коде, ровно один Update, FixedUpdate и LateUpdate которые запускают каждый свой Event, и в других скриптах где надо я подписываюсь на обновления, а где надо, отписываюсь. Update сами по себе вызываются медленно, и чем меньше их в проекте тем лучше.
Создай Event и подписывай нужный Update только тогда, когда на игрока применился эффект… как только эффект спал, отписывайся от обновления и все. В итоге проверка будет работать только в случае если на игроке какой либо эффект.
Не производительный подход.
OnDestroy вообще лучше в процессе игры не использовать, особенно на мобильных устройствах, лучше выключать компонент/объект, ибо OnDestroy требовательный + лишняя загрузка GC. Лучше инициировать в начале сцены, и затем использовать OnEnable/OnDisable — но не уверен что вызовы вызываются если только компонент выключается/включается, не было необходимости проверять это.
Манипулировать уже инициализированными переменными намного проще и быстрее, чем создавать новые компоненты в процессе игры.
Если вы все равно проверяете это в Update, то почему нельзя завести переменную которая будет отвечать за время эффекта? Т.е. заводите float SlowTime. Пока она равна 0, то скорость обычная, как только накладывается эффект, то к ней прибавляется 5 (секунд), которые в Update уменьшаются по deltaTime. Как только ставиться 0, возвращаем скорость. Попадает на дополнительный эффект, просто прибавляем к SlowTime еще Х секунд.
Это будет намного производительнее и проще.

Information

Rating
Does not participate
Location
Владивосток, Приморский край, Россия
Date of birth
Registered
Activity