Персонаж зачастую выполняет сложные действия, состоящие из нескольких этапов. Вместо того, чтобы управлять всем действием одним состоянием, есть смысл определить отдельные этапы и использовать отдельное состояние для каждого из этапов. Например, у персонажа может быть действие под названием “Trickshot” - персонаж приседает, чтобы точно прицелиться, стреляет и снова встает.
Хотя это полезно в целях контроля, недостатком является то, что конечный автомат становится большим и громоздким если добавлено много этих сложных действий. Вы можете упростить все в несколько раз, визуально разделив группы состояний пустым пространством в редакторе. Однако Mecanim идет на шаг впереди, позволяя вам свернуть группи состояний в единый элемент с названием в диаграмме конечного автомата. Эти свёрнутые группы состояний называются Sub-state machines.
Вы можете создать sub-state machine (вложенный конечный автомат) щёлкнув правой кнопкой мыши по пустому месту в окне Animator Controller и выбрать Create Sub-State Machine в контекстном меню. Вложенный конечный автомат представлен в редакторе в виде удлиненного шестиугольника, чтобы отличить его от обычных состояний.
Когда вы дважды щелкаете по шестиугольнику, редактор очищается, чтобы позволить вам отредактировать вложенный конечный автомат, как будто это совершенно отдельный и самостоятельный конечный автомат. Полоса в верхней части окна показывает навигационную цепочку, которая показывает, какой вложенный конечный автомат в настоящее время редактируется (обратите внимание на то, что вы можете создать вложенный конечный автомат в других вложенных конечных автоматах и т.д.). Нажатие на элементе цепочки сфокусирует редактор на нажатом вложенном конечном автомате.
As noted above, a sub-state machine is just a way of visually collapsing a group of states in the editor, so when you make a transition to a sub-state machine, you have to choose which of its states you want to connect to.
Вы заметите дополнительное состояние во вложенном конечном автомате, имя которого начинается с Up.
Состояние Up представляет “внешний мир”, конечный автомат, который окружает вложенный конечный автомат. Если вы добавите переход от состояния вложенного конечного автомата к состоянию Up, вам будет необходимо выбрать одно из состояний окружающего автомата для их соединения.