Прошлые домены не функционирует! Используйте адрес
ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
Суть задачи в том чтоб куб находился постоянно в одном из трёх стояний: белый (элегантный), красный (красивый) или синий (свежий).
При входе в состояние выполняется какая-то логика. Между какими состояниями не важно, просто при переходе в элегантное состояние куб, например, перемещается немного влево.
Дальше состояние обрабатывается в каждом кадре (пердёж в консоль)
При выходе из состояния тоже выполняется логика
Что я нашёл so far.
Можно сделать 3 функции OnStateEnter, OnStateExit и OnStateUpdate и делать в них switch/case как полный, блядь, обмудок. Если добавишь ещё состояний 5, то получишь колбасу кода в миллион строк. Это не элегантно, не свежно и не особенно красиво.
Можно нахуярить FSM на миллион строк (в 50 раз больше чем сама задача) и прописывать всё в отдельных файлах. Один большой "бонус" в том что если ты хочешь чтоб твоё состояние "элегантный" знало какой у него цвет, то будь добр сделай из приватных переменных публичные всем на посмешище. Ну и конечно в стейтах не забывай делать GetComponent от того компонента что эти цвета держат.
Отсюда вопрос: эт чего действительно такой рак и нет никакого паттерна попроще для решения довольно тривиальной задачи? Я видел как один дурачок удалял компоненты с GO и приделывал новые. Но мне бы хотелось услышать варианты решения от разумных людей