Построение UI/Диалоговых окон Unity
Нужен совет о правильном построении диалоговых окон в юнити.
Суть: Имеется игра в одной сцене. Все диалоговые окна (магазин, меню паузы и т.д.) работают через аниматоры. Т.е. Просто убираются и появляются на экран. Я считаю, что это не особо эффективно с точки зрения оптимизации, но не знаю как их показывать по другому, если не юзать Instantiate и Destroy, офк. Буду рад выслушать ваши советы.
Ответы (1 шт):
Вы можете отключать и включать объекты, в том числе UI, используя GameObject.SetActive , например:
CanvasForPauseMenu.SetActive(false);
Кроме того, если цель оптимизация, - будет разумно отключить компоненты игровых объектов, вызывающие тяжелый код каждый ход:
GetComponent(HardScript).enabled = false;
Таким же образом целесообразно поступить с анимацией, если она не воспроизводится постоянно. (потому что анимация "обновляется" каждый ход)
Кроме того, для оптимизации целесообразно использовать разные Canvas для разных меню. (потому что Canvas при каждом изменении перерисовывается полностью и сложность перерисовки зависит от количества элементов)