Tick指的是以规则间隔(通常为每帧一次)在一个Actor或Component上执行指定的代码。
1、Tick开关
在构造函数中,通过设置 bCanEverTick 的值(true/false)来开启或关闭Tick。
- Actor使用 PrimaryActorTick.bCanEverTick 对应的Tick函数为 Tick。
- Component使用 PrimaryComponentTick.bCanEverTick 对应的函数为 TickComponent。
一般新建的Actor类或Component类中 默认带有相关代码。
2、Tick组
有时我们希望某些Actor或Component的Tick以某种特定的顺序执行,以确保我们的业务逻辑能正常执行。我们可以通过设置Tick组来实现。
Tick组排序
Tick组 | 引擎相关执行逻辑 |
---|---|
TG_PrePhysics | 一帧从此Tick组开始。 |
TG_DuringPhysics | 在模拟物理的同时进行此Tick组。物理模拟可能在此Tick组中的任意时候完成。 |
N/A | 没有相关的Tick组。引擎会更新世界时间管理器、更新摄像机、更新关卡流送体积域和流送操作等。 |
TG_PostUpdateWork | 只执行TG_PostUpdateWork Tick组。 |
N/A | 没有相关的Tick组。处理之前在帧中创建的Actor的延迟生成。完成帧并渲染。 |