UE赋予某个C++类tick的能力

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能力

你可能感兴趣的:(UE4,c++,开发语言)