GUI - это график юзер интерфейс, в простонародье кнопочки, менюшки, иконки и всякое такое, которое должно переключаться, выбираться, тыкаться и всячески взаимодействовать с игроком и игрой. Казалось бы, что может быть проще? Но на поверке выясняется, что даже простейшая игра содержит в себе огромное количество элементов интерфейса и разнообразного взаимодействия этих элементов.
Комментарий недоступен
Всегда удивляюсь понимаю того как понимают машину состояний.
Как я понял из кода вы проходитесь по всем менюхам отключая все и включая только одну.
Тогда причём здесь машина состояний?
Машина состояний работает так, при старте все меню выключены кроме "стартового меню".
Далее, при клике на какую нибудь кнопку выключается открытое "стартовое меню" и включается другое, например "опции" и т д
Если вам приходится в цикле отключать уже отключенное то это не машина состояний.
Идея игры с подземными червями очень понравилась!
не в цикле, используется Event который отправляет всем слушателям событие изменение Режима, и все объекты игровые кому это надо реагируют соответственно. На старте просто отправляется событие "Начало Игры". Вообще может это и по другому называется, но я не борец за чистоту нравов, я это понимаю как состояния игры и поэтому так и назвал скрипт.
А что вы будете делать, если глав будет 20?
Когда будет, тогда и будем решать проблему. Мой способ подходит мне больше всего, это результат моих страданий, если у вас есть более простой и эффективный метод: Welcome в GameDev раздел в качестве автора :)
придет к решению типа:
в начале игры все выключено. и активируется стартовое меню.
Каждое текущее меню помещается в отдельную переменную.
Каждое переключение стейт машины выключает меню из переменной и после включает необходимую, опять занося ее в переменную.
Видно, что его метод очень близок к нормальному
лол ты это еще не страдал. Вот, когда не было еще Unity UI, а был только GUI, вот там реально было адово и больно, или плагины юзай или страдай и все через код делай )