Как предотвратить большое количество переходов в единый конечный автомат?

У меня есть машина состояний единства с четырьмя состояниями: холостой ход влево, холостой ход, холостой ход и холостой ход вправо.

переходы

Для перехода между этими состояниями мне нужно было создать 12 переходов. (белые стрелки). Это уже кажется громоздким, но теперь мне нужно добавить еще 4 состояния: вверх, вниз, бег влево и вправо.

Означает ли это, что я получаю 8 состояний и 24 перехода между ними? Это кажется мне очень громоздким. Что делать, если вам нужно что-то изменить позже?

Я знаю, что могу переходить по коду, но это не рекомендуемый способ работы.

animaor.Play("runningright");

Каков будет рекомендуемый способ работы со многими государствами?

1 ответ

Решение

Как сказал @Uri Popov, стоит подумать об использовании "Blend Trees". Они там с той же целью. Помощь смешивать несколько похожих анимаций. например, анимация ходьбы и бега похожа в том, что зависит от скорости движения персонажа.

Посмотрите следующие ссылки, чтобы узнать больше о смешанных деревьях. Это только основные, но, безусловно, поможет вам с вашей проблемой.

  1. Unity - Руководство: Blend Trees
  2. Blend Trees - Unity Официальные учебные пособия
  3. Когда использовать дерево смешивания против конечного автомата для анимации (еще один вопрос на gamedev.stackexchange)
Другие вопросы по тегам