定义一个Timer成员变量:
FTimerHandle TimerHandle;
先执行SetViewTargetWithBlend,接着执行SetTimer(蓝图中的node叫Delay),两个函数的执行时长必须一样(这里是0.5秒)。
参数顺序说明:
0,TimerHandler
1,回调函数的所在的对象
2,Timer结束后触发的回调
3,触发回调函数的延迟时长
4,是否循环触发
扫描二维码关注公众号,回复:
418173 查看本文章
//为了方便演示,假设这里PlayerController不为空 AHPlayerController* PC = NULL; PC->SetViewTargetWithBlend(SelectedHero, 0.5f); PC->GetWorldTimerManager().SetTimer(TimerHandle, this, &AHGameMode::SetTargetViewOver, 0.5f, false);
如果最后一个参数设置为true,那么可以再追加一个参数来设置首次执行的延迟时间,例如:
PC->GetWorldTimerManager().SetTimer(TimerHandle, this, &AHGameMode::SetTargetViewOver, 0.5f, true, 1.0f);
在回调函数中执行Possess()
void AHGameMode::SetTargetViewOver() { AHPlayerController* PC = NULL; PC->Possess(Character); }