Делаю игру на Unity3d. Эпизод 6: Машина состояний
Здравствуйте, дорогие Пикабушники и Пикабушницы!
Закончился мой отпуск в Сиродиле, и я нашел время сделать еще один ролик!
На этот раз я покажу фичу, которая помогает мне реализовывать различное поведение у игровых объектов - составную машину состояний!
Для использования стейт машины нужно прикрепить к игровому объекту специальный компонент CompositeStateMachineComponent.
Вы могли заметить, у компонента нет видимых полей. Но они есть. И чтобы до них добраться, нужно нажать кнопку открытия редакторе стейт машины.
Как я уже говорил - стейт машина составная. И в данном случае настроены три вложенных машины состояний:
Нажав на кнопку стейт машины мы открываем окно с её настройками:
Окно использует Graph API, для создания графа состояний с переходами между ними.
В прошлых роликах я рассказывал, что поведение игровых объектов определяется его активными компонентами. И суть состояния в том, что оно включает какие-то компоненты, тем самым активируя новое поведение. В каждом состоянии мы можем настроить список включаемых им компонентов:
А чтобы настроить переходы между состояниями, надо кликнуть на линию, связывающую их, и открыть окно редактирования условий переходов:
В этом окне можно настраивать условия переходов между состояниями и объединять их в группы.
А в игровом режиме редактор позволяет отслеживать текущее состояние объекта в реальном времени:
Подробнее я все разбираю в своем ролике. А если у вас возникнут вопросы по моему проекту или в общем по разработке игр в Unity, смело пишите их в комментарии!
Приятного просмотра!
Лига Разработчиков Видеоигр
8.5K постов23.1K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"