Таймер на боевом экране заставляет пересобирать весь канвас
Боевой интерфейс собран одним канвасом: около 400 элементов — полоски здоровья, панель умений, миникарта, подписи. Таймер боя обновляет свою подпись каждый кадр. Профайлер на устройстве показывает постоянные перестроения геометрии канваса, занимающие заметную часть кадра. Что происходит и как это чинят?
- Стоимость перестроений зависит от количества канвасов: чем их меньше, тем дешевле кадр, поэтому интерфейс надо, наоборот, свести в один канвас
- Изменение любого элемента помечает грязным весь канвас: часто меняющиеся элементы выносят на отдельный канвас, а подпись обновляют по смене значения
- Дело в конкретном компоненте текста: он перестраивает свою геометрию каждый кадр независимо от изменений, замена компонента уберёт перестроения
- Достаточно переключить канвас в другой режим наложения относительно камеры: в экранном пространстве геометрия собирается один раз при загрузке
