Зачастую университетские преподователи математики любят грузить студентов сложными определениями, обвешивая математику какойто ширмой недоступности.
На самом деле, мои хорошие математика - очень проста и красива.
Студенты технчиеских шараг университетов могут вспомнить, так называемую теорию "Конечных автоматов" или "Finite-state machine".
Все это абстрактное великолепие зачастую измазано ужасом и сложностью.
На самом деле с конечными автоматами мы знакомы с детсва. Для того, чтобы разобраться что это за "автоматы", разберем жизнь типичного офисного планктона клерка:
Все сразу стало на свои места, согласитесь.
И конечный автомат уже не такой сложный и буквы вроде не эльфийские.
Причем тут Unity?
Если вы хотите войти в GameDev, то математика вам просто необходима. Теория конечных автоматов нужна в любой игре для:
- Запуска последовательности анимаций для персонажа. Настроите не верно персонаж будет прыгать, когда не нужно.
- Опредления состояния игры, т.е. запуск игры, конец игры и т.п.
- Для всяких костыльных хендлеров запрсоов из ваших бекенд штучек
Пример
Допустим у нас есть персонаж Саид :
Саид может находится в 3-х состояниях:
- Ожидание
- Бег
- Прыжок
Разумеется надо усложнить автомат наличием условий перехода, иначе ведь совсем не похоже на игру :
В отличии от предыдущего примера мы добавили условия перехода, которые мы будем менять из кода, который будет хранить состояния персонажа:
Разумеется само по себе это дело не заведется. Пишем связующий контроллер для самого персонажа:
Пример использования конечного автомата в готовой ну почти игре:
В след статье разберу как использовать конечные автоматы в C# для опредления состояния игры.
Mark Alkihuri 20/10/2020