사진처럼 플레이어 앞에 캐릭터를 스폰했는데 문제는 스폰된건 맞는데 플레이어 시점에서는 안보입니다......

근데 또 f8눌러서 나가면 보이고 다시 f8눌러서 들어오면 보이네여;;;

뭐가 문제일까요? 코드는 제대로 된건데 어떤걸 만져야할까요?


a15714ab041eb360be3335625e80736bd5cca5258212609b11ed03a377d7d911a65f



이건 게임 오버시 장면이고



a15714ab041eb360be3335625e80736a83b1b12807312ea00447374fb89926ede3b9

아래는 f8눌렀다가 다시 들어왔을때 상황입니다.



a15714ab041eb360be3335625e807365ab61ce56b9ead5c9e67f7e0c13e3de22fc6c

그리고 아래는 게임모드의 스폰 시키는 함수입니다.

void AMonsterguestGameMode::TriggerGameOver()
{
    UE_LOG(LogTemp, Warning, TEXT("게임 오버 트리거됨"));

    APlayerController* PC = UGameplayStatics::GetPlayerController(GetWorld(), 0);
    if (!PC) return;

    if (APawn* PlayerPawn = PC->GetPawn())
    {
        if (ACharacter* Char = Cast<ACharacter>(PlayerPawn))
        {
            Char->GetCharacterMovement()->StopMovementImmediately();
            Char->GetCharacterMovement()->DisableMovement();
        }

        PC->SetIgnoreMoveInput(true);
        PC->SetIgnoreLookInput(true);


        FVector PlayerLoc = PlayerPawn->GetActorLocation();
        float GroundZ = 90.f;  
        PlayerPawn->SetActorLocation(FVector(PlayerLoc.X, PlayerLoc.Y, GroundZ));
    }

    FVector CameraLoc;
    FRotator CameraRot;
    PC->GetPlayerViewPoint(CameraLoc, CameraRot);

    CameraRot.Pitch = 30;

    PC->SetControlRotation(CameraRot);

    PC->GetPlayerViewPoint(CameraLoc, CameraRot);
   
    if (!GameoverCharacterClass) return;

    FRotator FlatRot = CameraRot;
    FlatRot.Pitch = 0.f;
    FVector ForwardFlat = FlatRot.Vector();

    FVector SpawnLoc = CameraLoc + ForwardFlat * 100.f;  // 카메라 앞
   
    FRotator AdjustedRot(0.f, CameraRot.Yaw + 90.f, 0.f);

    AdjustedRot.Pitch = 0.f; // X축 회전 제거
    AdjustedRot.Roll = 0.f;  // Z축 회전 제거

    FActorSpawnParameters Params;
    AActor* GameoverActor = GetWorld()->SpawnActor<AActor>(GameoverCharacterClass, SpawnLoc, AdjustedRot, Params);
    GameoverActor ->SetActorHiddenInGame(false);
    UE_LOG(LogTemp, Warning, TEXT("GameOver Actor Spawned at: %s"), *SpawnLoc.ToString());  
}