我的观众没有收到跟从的球员的任何旋转信号。



我正在尝试与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是更改默认摄像头位置的标准方法,因此观众机制应支持此功能。
我将不胜感激。

最佳答案

原来必须在Pawn上将“使用控制器旋转间距”设置为true(默认情况下,Yaw为true)。
问题已解决。

10-06 02:27