UE动画状态机的事件触发顺序测试

正常A状态过渡到B状态的事件顺序:

UE动画状态机的事件触发顺序测试_第1张图片

整个流程为:

  1. 调用B状态的On Become Relevant事件
  2. 调用B状态的On Update事件
  3. 调用A状态的Left State Event事件
  4. 调用B状态的Entered State Event事件
  5. 调用B状态的Start Transition Event事件
  6. 调用B状态的End Transition Event事件

注意:

  • 同一帧内,即使B状态的Entered State Event里修改了变量,但过渡仍然认的是修改前的。
    需要加一个Current State Time > 0.01这样的判断,让过渡在非第一帧生效。
  • End Transition Event有时候会不触发,可能是A过渡尚未完成但B过渡已经完成了状态跳转。

如果切到B状态又立刻返回A状态的事件顺序

比如加一个变量默认为True,到了B状态秒切回A状态:
UE动画状态机的事件触发顺序测试_第2张图片
UE动画状态机的事件触发顺序测试_第3张图片

执行后的结果可以看出,LeftState、Enter State、Start Transition Event这三个事件是仍然会正常调用的,而OnRelevant和OnUpdate在快速状态切换时调用并不稳定,有时触发有时不触发。

你可能感兴趣的:(UE5,学习,性能优化)