void ADebugCameraController::SetSpectatorPawn(ASpectatorPawn* NewSpectatorPawn) { Super::SetSpectatorPawn(NewSpectatorPawn); if (GetSpectatorPawn()) { GetSpectatorPawn()->SetActorEnableCollision(false); GetSpectatorPawn()->PrimaryActorTick.bTickEvenWhenPaused = bShouldPerformFullTickWhenPaused; USpectatorPawnMovement* SpectatorMovement = Cast<USpectatorPawnMovement>(GetSpectatorPawn()->GetMovementComponent()); if (SpectatorMovement) { SpectatorMovement->bIgnoreTimeDilation = true; SpectatorMovement->PrimaryComponentTick.bTickEvenWhenPaused = bShouldPerformFullTickWhenPaused; InitialMaxSpeed = SpectatorMovement->MaxSpeed; InitialAccel = SpectatorMovement->Acceleration; InitialDecel = SpectatorMovement->Deceleration; ApplySpeedScale(); } } }
void ADebugCameraController::ApplySpeedScale() { ASpectatorPawn* Spectator = GetSpectatorPawn(); if (Spectator) { USpectatorPawnMovement* SpectatorMovement = Cast<USpectatorPawnMovement>(Spectator->GetMovementComponent()); if (SpectatorMovement) { SpectatorMovement->MaxSpeed = InitialMaxSpeed * SpeedScale; SpectatorMovement->Acceleration = InitialAccel * SpeedScale; SpectatorMovement->Deceleration = InitialDecel * SpeedScale; } } }
void ASrPlayerController::BeginPlay() { Super::BeginPlay(); Pawn = Cast<ASrPlayerPawn>(GetSpectatorPawn()); check(Pawn->IsA(ASrPlayerPawn::StaticClass())); // Don't override this with non SrPlayerPawn based classes. if (Pawn) { Pawn->SetActorRotation(this->GetControlRotation()); Pawn->SetActorLocation(this->GetSpawnLocation()); } FSlateApplication::Get().SetAllUserFocusToGameViewport(); bShowMouseCursor = true; }