正常A状态过渡到B状态的事件顺序:
整个流程为:
- 调用B状态的On Become Relevant事件
- 调用B状态的On Update事件
- 调用A状态的Left State Event事件
- 调用B状态的Entered State Event事件
- 调用B状态的Start Transition Event事件
- 调用B状态的End Transition Event事件
注意:
- 同一帧内,即使B状态的Entered State Event里修改了变量,但过渡仍然认的是修改前的。
需要加一个Current State Time > 0.01这样的判断,让过渡在非第一帧生效。 - End Transition Event有时候会不触发,可能是A过渡尚未完成但B过渡已经完成了状态跳转。
如果切到B状态又立刻返回A状态的事件顺序
比如加一个变量默认为True,到了B状态秒切回A状态:
执行后的结果可以看出,LeftState、Enter State、Start Transition Event这三个事件是仍然会正常调用的,而OnRelevant和OnUpdate在快速状态切换时调用并不稳定,有时触发有时不触发。