Несколько меню в игре
В-общем, снова желаю посоветоваться на предмет "Не фигню ли я делаю?"
Встала такая задача: Есть GUI (который юнитовский современный, не Legacy) в игре: счётчик здоровья, очков, патронов, кнопка паузы и т.д. По нажатию на кнопку паузы надо сделать показ дополнительных кнопок ("выйти в главное меню", "настройки" и т.д.) Собственно, я вздумал сделать отдельный Canvas под них и показывать только в определённый момент. Кстати, в "настройках" тоже будут свои пункты, под них тоже отдельный Canvas. Собственно, не много ли канвасов я собираюсь наплодить? Стоит ли делать как-то иначе, или выше описан нормальный подход? |
Ответ: Несколько меню в игре
Цитата:
От себя: У меня большое кол-во канвасов отражалось на производительности(чекал в профаилере), поэтому использовал Panel,которые скрывал/показывал простым setactive(). |
Ответ: Несколько меню в игре
Цитата:
Цитата:
|
Ответ: Несколько меню в игре
Цитата:
Это могут быть и пустые го, но я делаю панелями,сразу выставляю ей стретч на весь экран,при необходимости оставляю/скрываю бэкграундовский image, дальше чаилды расставляю уже относительно этой панели. Единственный минус перед канвасами для меня: Нет аналога Canvas.enabled=false/true, только отрубать го. Если эти панели нужно будет найти через gameobject.Find() то любой не активный го он не найдет. Поэтому их нужно будет или задать руками в нужных скриптах, или находить в awake(),а потом уже отрубать. UP: чуть не забыл, если го сделать не активным то у него отключаются все скрипты,рендеры и.т.д => Относительно UI - если на панельке висит Аниматор, то при отключении он перейдет в статус Not Initialized,при включении насколько я понимаю он инициируется по новой, хз насколько это затратно в плане ресурсов,но пока проблем не встречал. |
Ответ: Несколько меню в игре
Я делал (и многие на тытубе так же) путем создания пустых объектов в канвасе и расстановки в них элементов для каждого окна (меню, настройки, etc). Это несколько не удобно, но за то всего один канвас. А дальше просто включай/выключай нужные/не нужные окна.
Не удобно потому что сразу все включенные окна создают кашу в редакторе, но если принудительно рукой выключить, то будет не возможно через код найти их. Нужно будет опять же принудительно в редакторе указывать ссылки. |
Ответ: Несколько меню в игре
Дофига всяких меню/пагелей/кнопок. Для всего 1 канвас. Ui с аниматором, но отключение к плохому не приводит.
Raycast Target отключать желательно везде, что используется тупо как фон и не кликабельно, но если через EventController будешь получать элемеет, который под мышкой - он его не найдет, так как не рейкастит. |
Часовой пояс GMT +4, время: 11:50. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot