Построение UI/Диалоговых окон Unity

Нужен совет о правильном построении диалоговых окон в юнити.

Суть: Имеется игра в одной сцене. Все диалоговые окна (магазин, меню паузы и т.д.) работают через аниматоры. Т.е. Просто убираются и появляются на экран. Я считаю, что это не особо эффективно с точки зрения оптимизации, но не знаю как их показывать по другому, если не юзать Instantiate и Destroy, офк. Буду рад выслушать ваши советы.


Ответы (1 шт):

Автор решения: ssa112112

Вы можете отключать и включать объекты, в том числе UI, используя GameObject.SetActive , например:

CanvasForPauseMenu.SetActive(false);

Кроме того, если цель оптимизация, - будет разумно отключить компоненты игровых объектов, вызывающие тяжелый код каждый ход:

GetComponent(HardScript).enabled = false;

Таким же образом целесообразно поступить с анимацией, если она не воспроизводится постоянно. (потому что анимация "обновляется" каждый ход)

Кроме того, для оптимизации целесообразно использовать разные Canvas для разных меню. (потому что Canvas при каждом изменении перерисовывается полностью и сложность перерисовки зависит от количества элементов)

→ Ссылка