GUI или как перестать страдать (Unity)
Всем привет, первая моя игра умерла сразу после того как я закончил геймплей и перешёл к Интерфейсу. Отсутствие опыта в этом разделе геймдева превратило разработку в АД и проект скоропостижно скончался. Но я не отчаивался, ̶я̶ ̶о̶т̶к̶о̶ф̶е̶в̶а̶л̶с̶я̶, поэтому и пишу данный текст.
GUI - это график юзер интерфейс, в простонародье кнопочки, менюшки, иконки и всякое такое, которое должно переключаться, выбираться, тыкаться и всячески взаимодействовать с игроком и игрой. Казалось бы, что может быть проще? Но на поверке выясняется, что даже простейшая игра содержит в себе огромное количество элементов интерфейса и разнообразного взаимодействия этих элементов.
Даже без половины того что задумано это уже содержит несколько сотен объектов, ориентироваться в которых не так уж и просто, особенно когда они все одновременно находятся на экране. Так вот суть данного поста в простом Трюке, который позволяет скрывать все элементы интерфейса не принадлежащие к текущему логическому, то есть, если мы работаем с Меню выбора уровней, то все остальные меню автоматически скрываются. Этот способ работает как в режиме редактора так и в игре.
Для того чтобы это работало достаточно в каждый логический раздел интерфейса поместить скрипт StateMachine, который и будет переключать "Режимы" игры. Код StateMachine C #
Используется enum, который отвечает за количество режимов игры, благодаря ему и можно использовать выпадающий список режимов в окне редактора. Скрипт GameManager C #
Когда я "изобрёл" данную фича моя жизнь изменилась навсегда. Теперь создание игровых менюшек крайне простое занятие и не ведёт в АД :)
Если вам понравилось, то лайкайте и я буду писать всякие такие полезные мелочи или даже что то более сложное.
PS: скрин из текущей игры в разработке Perfect Valley