State
- 不用说了.转换到谁就是谁.
State转换到Exit
- 如果Exit是顶级.那么状态会转换到default state.
- 如果Exit是大状态机里的.那么就根据大状态机的转换来转换.如果大状态机没条件转换或没有任何 转换.那么会 转换 到最初的default state.
- 所以避免transition到Exit.应该尽量 转换 到具体的某个state或大state.
State转换到大状态机
- 如果大状态机里的Entry有Make Transition有连接并且条件成功.则转换到目标状态.
- 否则转换到Entry连接的Set StateMachine Default State默认目标.
大状态机转换到其他State
- 大状态连到State。但是大状态.A没连。大状态机.A不会转换到State。
Entry
- Set StateMachine Default State设置默认状态.如果Make Transition没有或条件不成立.则执行连接的默认状态.
- Make Transition相比Entry的StateMachine Default State会优先考虑Make Transition所连接的状态。(除了Base Layer最顶层的第一次运行)
Any State
- 真·任意状态都会转换到目标状态.只要条件成立.无视是否在同个大状态中.
- Has ExitTime该是怎样的还是怎样的.
- 如果想限制仅在同个大状态中才会Any State转换.则需要2个条件加脚本的协助.其中一个条件为bool.通过脚本的进入来设为true.退设为false.
- 如果条件一直成立.则会一直转换到目标状态.一直触发脚本的Enter/Exit.这里要小心.
StateMachineBehaviour
- 最顶层的先进入. 退出也是最顶层的先退出.更新也是.也就是说所有函数都是顶层先运行.
- 当状态发生转换时.上层-顶层都会出发Exit和Enter函数事件.
- Exit事件并不能非常准确的被调用.
状态过渡虽然可以让动画平滑.并且在期间随时可以转换.但是,过渡期间没完成,下个状态是不能转换都另外一个状态的.即使条件成立,没有退出时间.
![](https://img.haomeiwen.com/i15249959/728adfae3fc7a0b1.png)
如果运动1运行到2.5秒(50%一半)的时候,转换到运动2。那么运动2的比例是从5秒(50%也是一半)开始.
但是,如果
不同时间
是0。动画可以动5秒。如果不同时间
是1。那么动画可以动10秒。如果在运行到一半时不同时间
转成1,那么动画时长自然是5 x 0.5+10 x 0.5=7.5s
关于SMB:进入混合树。只会触发一次Enter。小树中的小状态转换不会触发Enter和Exit.
State连接中的"或"条件
- 由于可以重复多次连接..每次连接用不同的条件就能形成"或"运算条件
网友评论