Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Переключение UI-экранов в Unity

Переключение UI-экранов в Unity

AlexdeBurПостоялецwww24 фев. 201815:44#0
Доброго времени суток всем! Кто работал с UI в Unity - хочу поинтересоваться - как переключаете экраны/панели/элементы интерфейса?
Выключаете их, используете CanvasGroup, или какие-то дополнительные решения/плагины?

За последние годы пришел к решению использовать CanvasGroup, сейчас у меня обычно 3-15 full-screen CanvasGroup и управляющий скрипт переключает их по альфе и interactable в зависимости от того, что должно быть активно в данный момент. Работает быстро, позволяет делать полупрозрачные панели, если нужно, на производительность не жалуюсь. Из минусов - разве что то, что все панели включены одновременно.

У варианта с переключение GameObject-ов тот плюс, что ненужное выключено, но при мало-мальски сложном UI заметны подвисания при включении экрана.

Кто что использует?

QofiПользовательwww24 фев. 201819:26#1
Я использую отключение GameObject-ов и подвисания не замечал. Причём, если программа такова, что нажатие кнопки ведёт на конкретный объект (панель) то для этого скрипт не использую совсем. У UI Button есть прекрасная функция OnClick, где можно выставлять какой объект выключить, а какой включить при его нажатии. А вот interactable  уже через скрипт.
foxesПостоялецwww24 фев. 201820:09#2
Пишу свой скрипт, который для соответствующего режима меню показывает только одну группу объектов, настраивается через инспектор.
WadiПостоялецwww13 мар. 201822:03#3
Смотря что за версия. В unity 5 выключаю Canvas, работает быстрее чем выключение\включение GameObject, а при выключенном Canvas дочерние UI элементы перестают пересчитываться. В unity 2017 лучше вырубать GameObject, т.к. включен Canvas или нет, дочерние элементы продолжают считать себе размер и позицию. В итоге при большом количестве разных окошек, игра потребляет больше ресурсов.
alt3dПостоялецwww14 мар. 20189:04#4
AlexdeBur
> но при мало-мальски сложном UI
Сложный это сколько объектов, например?

Что-то я сомневаюсь что даже если счет идет на тысячи - при простом включении/выключении что-то будет подвисать.

Правка: 14 мар. 2018 9:05

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр