【问题标题】:UE4 - Spectator does not rotate(pitch) when using CameraComponentUE4 - 使用 CameraComponent 时观众不旋转(俯仰)
【发布时间】:2019-07-29 08:48:54
【问题描述】:

我的观众没有收到来自跟随玩家的任何球场旋转。


我正在尝试与 ShooterGame 项目合作,以制作概念验证 FPS 观众功能。 我在 GameMode 中添加了将 VictimPlayer 切换到旁观者模式的代码:

VictimPlayerState->bIsSpectator = true;
PlayerController->ChangeState(NAME_Spectating);
PlayerController->ClientGotoState(NAME_Spectating);

我还向 PlayerController 添加了逻辑,它将观众的视图切换到下一个玩家:

void AShooterPlayerController::BeginSpectatingState()
{
    Super::BeginSpectatingState();

    ServerViewNextPlayer();
}

而且它运行良好。 但如果我将 CameraComponent 添加到 ShooterCharacter - 我的观众不会收到任何俯仰旋转。

AShooterCharacter::AShooterCharacter(const FObjectInitializer& ObjectInitializer)
    : Super(ObjectInitializer.SetDefaultSubobjectClass<UShooterCharacterMovement>(ACharacter::CharacterMovementComponentName))
{

    FirstPersonCameraComponent = CreateDefaultSubobject<UCameraComponent>(TEXT("FirstPersonCamera"));
    FirstPersonCameraComponent->SetupAttachment(GetCapsuleComponent());
    FirstPersonCameraComponent->RelativeLocation = FVector(-39.56f, 1.75f, 64.f); // Position the camera
    FirstPersonCameraComponent->bUsePawnControlRotation = true;

    Mesh1P = ObjectInitializer.CreateDefaultSubobject<USkeletalMeshComponent>(this, TEXT("PawnMesh1P"));
    Mesh1P->SetupAttachment(FirstPersonCameraComponent);
    GetMesh()->SetupAttachment(FirstPersonCameraComponent);
...

我在这里缺少什么?我相信 CameraComponent 是更改默认相机位置的标准方法,因此旁观者机制应该支持这一点。 如有任何帮助,我将不胜感激。

【问题讨论】:

    标签: c++ camera rotation multiplayer unreal-engine4


    【解决方案1】:

    事实证明,Pawn 上的“Use Controller Rotation Pitch”必须设置为 true(默认情况下 Yaw 为 true)。 问题已解决。

    【讨论】:

      猜你喜欢
      • 2021-02-21
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 2020-01-28
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      相关资源
      最近更新 更多