参考
Unity动画系统详解10:子状态机是什么?
https://docs.unity3d.com/cn/current/Manual/NestedStateMachines.html
Unity游戏动画 从入门到住院:动画状态机
学习笔记 --- Unity动画系统
小新:“大智,除了使用Layer还有没有更好的组织状态的方式呢?感觉一个Layer里面状态多的时候,还是很显得很乱”
大智:“可以尝试使用Sub-State Machines,也就是子状态机,可以将一些状态放到子状态机里。
一、子状态机
这个状态机的作用是,他可以创建另外一套次级状态。举例来说,act游戏中角色站着的时候有站跑攻击防御,下蹲的时候则是另外一套站跑攻击防御。下蹲就是次级状态,因为下蹲跑,下蹲攻击这些动作都是基于下蹲这个状态,所以他们可以独立成为一个次级状态机。更多的比如,下蹲攻击防御被击,空中攻击防御被击,中毒状态下攻击防御被击,残血状态下攻击防御被击等等不同的次级状态。。。


1.创建六边形的sub state状态机后,双击即可打开进行编辑


2.添加transition

子状态机只是从视觉上将一些状态折叠到一个子状态机中,所以添加transition拖到子状态机时,会自动弹出如图菜单,需要选择具体转换到哪一个状态或整个状态机。
选择状态时,Transition会直接转换到对应的状态。选择状态机时,相当于将Transition转换到对应状态机的Entry状态。

子状态机中有一个额外的状态名字为(Up)XXX。这个状态代表上一层的状态机。你可以在子状态机中创建Transition转换到上一层状态机中的某个状态。选择状态时,Transition会直接转换到对应的状态。选择状态机时,相当于将Transition转换到对应状态机的Entry状态。
3.指向Exit的过渡
我们可以在子动画组中创建指向Exit的过渡,当触发时,就会返回上一层的Entry并进入上一层的初始状态

网友评论