视角同步NewViewTarget

时间:2021-09-12 09:24:29

SetViewTargetwithBlen说明:

http://api.unrealengine.com/INT/BlueprintAPI/Game/Player/SetViewTargetwithBlend/?tdsourcetag=s_pcqq_aiomsg

一、创建一个空项目

二、设置输入映射

  视角同步NewViewTarget

三、创建一个名为“MyCameraActor”的Character

  视角同步NewViewTarget

  保持不变。

  视角同步NewViewTarget

四、在关卡蓝图

  视角同步NewViewTarget

  视角同步NewViewTarget

  注意Set View Target with Blend节点要取消情景关联才会显示出来。

五、设置游戏窗口大小

  视角同步NewViewTarget

六、运行游戏

  视角同步NewViewTarget

七、在打开的第一个窗口(服务器端)游戏窗口中按v键,按Shift+F1释放鼠标,激活第二个游戏窗口(游戏客户端),随意走动和上下左右看看,第一个窗口(服务器端)的画面也会跟着同步。

  视角同步NewViewTarget

八、如果给MyCharacter添加一个Camera,则无论客户端或者服务器端游戏窗口都可以按下V键,然后会自动同步另外一个游戏窗口的画面,左右看和移动都可以同步,但是无法同步往上往下看,原因未知!

九、SetViewTargetWithBlend用法(C++)

const float TimeBetweenCameraChanges = 2.0f;
const float SmoothBlendTime = 0.75f;
TimeToNextCameraChange -= DeltaTime;
if (TimeToNextCameraChange <= 0.0f)
{
TimeToNextCameraChange += TimeBetweenCameraChanges; // Find the actor that handles control for the local player.
APlayerController* OurPlayerController = UGameplayStatics::GetPlayerController(this, );
if (OurPlayerController)
{
if ((OurPlayerController->GetViewTarget() != CameraOne) && (CameraOne != nullptr))
{
// Cut instantly to camera one.
OurPlayerController->SetViewTarget(CameraOne);
}
else if ((OurPlayerController->GetViewTarget() != CameraTwo) && (CameraTwo != nullptr))
{
// Blend smoothly to camera two.
OurPlayerController->SetViewTargetWithBlend(CameraTwo, SmoothBlendTime);
}
}
}