欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[UE4]平滑过渡实现PlayerController::Possess()

程序员文章站 2024-03-24 08:20:40
...

定义一个Timer成员变量:

 

FTimerHandle TimerHandle;

 

 

先执行SetViewTargetWithBlend,接着执行SetTimer(蓝图中的node叫Delay),两个函数的执行时长必须一样(这里是0.5秒)。

参数顺序说明:
0,TimerHandler

1,回调函数的所在的对象

2,Timer结束后触发的回调

3,触发回调函数的延迟时长

4,是否循环触发

 

//为了方便演示,假设这里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);
}

 

 

相关标签: UE4