Переключение между Canvas из скрипта

214
03 марта 2018, 17:46

Как реализовать переключение между Canvas из скрипта?

На то что написано в документации студия орет что устаревшие методы.

То что нашел в интернете все какое то старое, и по-моему можно сделать короче и проще, должны же быть для этого инструменты...

Я добавил к Canvas две Animation, on и off в них добавил Canvas.Enable, в одной анимации он равен 1 в другой 0. Переключение между ними по тригеру в Animator, это костыль? Или вполне рабочая схема?

Но появился новый вопрос как определить какой Canvas в данный момент Enable что бы отключить его? Загнать в переменную? Как то не универсально..

Как можно получить все обьекты типа Canvas на сцене?

Answer 1

Когда я делал систему игровых панелей выглядело всё примерно так: У меня есть объект "UI" на нём висит соответствующим образом настроенный Canvas и компонент что-нибудь вроде UISystem. Внутри этого объекта-системы находятся уже объекты панелей. На каждой панели есть свой выключенный Canvas и класс наследующийся от общего предка APanel. Этот класс уже и осуществляет управление "появлением" и содержит идентификатор панели.

Т.е. сама система знает обо всех панелях, что являются её чайлдам и содержит в себе их список. Когда я хочу открыть панель я говорю системе "Открой панель "Меню", она ищет в этом списке по идентификатору, находит и вызывает у неё метод, например, Open();. Панель включает свой Canvas через _canvas.enable = true. Когда панель нужно закрыть - говорю системе "закрой панель такую-то" и действие описанное выше повторяется.

На самом деле, там всё было гораздо сложнее, включало отдельные скрипты "аниматоры", которые отвечали за то, как именно появляется панель, отдельные модификаторы появления (вроде "Закрыть все, а потом открыть вот эту"), кальбэки после открытия и события у панелей, чтобы можно было делать что-то в панели до/после проигрывания анимации открытия/закрытия. Однако, основная суть описана в первых двух абзацах.

READ ALSO
Отправка POST запроса C#

Отправка POST запроса C#

Мне необходимо сделать ПО для авторегистрации на одном из сайтовДелаю подобное первый раз

277
Как узнать все об области видимости класса с помощью рефлексии в C#?

Как узнать все об области видимости класса с помощью рефлексии в C#?

Необходимо узнать модификаторы доступа определенного класса,используя методы рефлексии

219
Работа с сокетами(отправка данных с бд)

Работа с сокетами(отправка данных с бд)

Есть клиент, который при помощи сокета ТСР отправляет запрос на сервер(select * from table1), сервер его получает и ищет в бдКак эти данные сокетами...

231
Какой будет путь у сохраняемого файла?

Какой будет путь у сохраняемого файла?

На msdn нашел такой пример:

198