Setup Post-mission Camera

时间:2023-03-09 17:50:34
Setup Post-mission Camera

编辑BP_GameMode

Setup Post-mission Camera

新建Actor命名为BP_SpectatingViewpoint

添加摄像机

Setup Post-mission Camera

将摄像机调整到合适的位置,右键选择

Setup Post-mission Camera

调整到合适的位置,点击这个按钮,退出驾驶模式

Setup Post-mission Camera

摄像机已经移动到合适的位置

Setup Post-mission Camera

回到BP_GameMode,在这一位置上设置了摄像机

Setup Post-mission Camera

给镜头移动添加慢动作,只需要修改参数

Setup Post-mission Camera

将上述逻辑连接断开,将用代码实现

在FPSGameMode头文件中新建变量

protected:
UPROPERTY(EditDefaultsOnly,Category="Spectating")
TSubclassOf<AActor> SpectatingViewpointClass;

在FPSGameMode的Cpp文件中修改CompleteMission函数

void AFPSGameMode::CompleteMission(APawn* InstigatorPawn)
{
if (InstigatorPawn)
{
InstigatorPawn->DisableInput(nullptr);
if (SpectatingViewpointClass)
{
TArray<AActor*> ReturnedActors;
UGameplayStatics::GetAllActorsOfClass(this, SpectatingViewpointClass, ReturnedActors);
//找到任何有效actor后,更改目标视角
if (ReturnedActors.Num() > )
{
AActor* NewViewTarget = ReturnedActors[];
APlayerController* PC = Cast<APlayerController>(InstigatorPawn->GetController());
if (PC)
{
PC->SetViewTargetWithBlend(NewViewTarget, 0.5f, EViewTargetBlendFunction::VTBlend_Cubic);
}
}
}
else
{
UE_LOG(LogTemp, Warning, TEXT("SpectatingViewpointClass is nullptr"));
}
}
OnMissionComplete(InstigatorPawn);
}

将之前建的变量赋值

Setup Post-mission Camera