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

举报
UE5技术哥 发表于 2024/06/12 22:35:09 2024/06/12
【摘要】 正常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 ...

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

q1.jpeg


整个流程为:

调用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状态:

q2.png


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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。