1、 FTicker
FTicker
允许注册一个函数,使其在每帧被调用。
步骤:
-
在
自定义类中
中创建一个Tick
函数。 -
使用
FTicker::AddTicker
注册该的Tick
函数。注册到 Ticker ,返回值是一个句柄,后面如果有需要可以移除该ticker
TickerHandle = FTicker::GetCoreTicker().AddTicker(FTickerDelegate::CreateUObject(this, &ThisClass::Tick));
注销
FTicker::GetCoreTicker().RemoveTicker(TickerHandle);
2、Timer
设置一个定时器来定期调用自定义的 Tick
函数,而不是在每帧调用。
步骤:
- 在
Subsystem
中使用GetWorld()->GetTimerManager().SetTimer
设置一个定时器。 - 在定时器回调中执行
Tick
逻辑。
设置一个定时器
清除定时器World->GetTimerManager().SetTimer(TimerHandle, this, &ThisClass::Tick, 1.0f / 60.0f, true);
World->GetTimerManager().ClearTimer(TimerHandle);
3、继承FTickableGameObject
继承自FTickableGameObject
,重写Tick()函数来获取tick能力