Post

UE5 Ticking

Ticking

Ticking 是指每隔固定的时间运行某个 ActorComponent 上的一段代码或蓝图过程,此固定的时间一般为每帧一次,也可以设为 以固定时间间隔执行,或不执行

理解游戏中的 ActorComponent 以及其他由引擎在每一帧中执行的任务的相互关系和执行顺序有助于避免各类帧相关的差一错误

Tick Interval

SetTickInterval Set Tick Interval

可以使用 Set Tick Interval 函数指定Tick以固定时间间隔执行

Tick Group

除非指定了 Tick 以固定时间执行,Actor 和 Component 将在每帧中按 Tick Group 依次执行,只有当前 Tick Group 中的所有的 Actor 和 Component 全部 Tick 完毕后,才会执行下一个 Tick 组中 Actor 和 Component 的 Tick

注意:物理模拟的更新并不在其中

Tick Group 顺序

TG_PrePhysics

最先执行的 Tick Group ,Actor 的运动和动画应在此组中进行,并在此帧中与物理对象进行交互,如组名称所示,在物理更新之前开始和完成

显然,此帧中 Actor 所交互的物理是上一帧的物理状态,因为当前帧的物理 Tick 尚未执行

TG_DuringPhysics

顾名思义,此 Tick Group 与物理模拟同时进行,并且物理模拟可在此 Tick Group 中的任意时刻完成,因此,无法确定此 Tick Group 中的物理数据来自上一帧还是当前帧,所以推荐只将与物理无关或允许一帧偏差的逻辑放在此组中,如物品栏更新和小地图等等

TG_PostPhysics

在所有物理更新结束后执行,在此 Tick Group 进行时,所有的物理对象都位于最终位置,适用于所有需要 射线碰撞检测的 Actor

TG_PostUpdateWork

在一帧的最后执行,当此组执行时,所有摄像机的位置更新完毕,适用于需要知道摄像机位置的游戏特效,以及在每一帧最后发生的游戏逻辑判断

参考链接

差一错误:差一错误 - 维基百科,自由的百科全书 (wikipedia.org)

Actor Ticking:Actor Ticking

This post is licensed under CC BY 4.0 by the author.