void ABerserkGameMode::RestartPlayer(AController* newPlayer) { const auto startSpot = FindPlayerStart(newPlayer); if (startSpot != nullptr) { InitStartSpot(startSpot, newPlayer); const auto newPlayerController = Cast<ABerserkPlayerController>(newPlayer); if (newPlayerController != nullptr) newPlayerController->SetInitialLocationAndRotation(startSpot->GetActorLocation(), startSpot->GetActorRotation()); } else LogWarning("Player start not found, failed to restart player."); }
void ADebugCameraController::OnActivate( APlayerController* OriginalPC ) { // keep these around OriginalPlayer = OriginalPC->Player; OriginalControllerRef = OriginalPC; FVector OrigCamLoc; FRotator OrigCamRot; OriginalPC->GetPlayerViewPoint(OrigCamLoc, OrigCamRot); float const OrigCamFOV = OriginalPC->PlayerCameraManager->GetFOVAngle(); ChangeState(NAME_Spectating); // start debug camera at original camera pos SetInitialLocationAndRotation(OrigCamLoc, OrigCamRot); if (PlayerCameraManager) { PlayerCameraManager->SetFOV( OrigCamFOV ); PlayerCameraManager->UpdateCamera(0.0f); } // draw frustum of original camera (where you detached) if (DrawFrustum == NULL) { DrawFrustum = NewObject<UDrawFrustumComponent>(OriginalPC->PlayerCameraManager); } if (DrawFrustum) { DrawFrustum->SetVisibility(true); OriginalPC->SetActorHiddenInGame(false); OriginalPC->PlayerCameraManager->SetActorHiddenInGame(false); DrawFrustum->FrustumAngle = OrigCamFOV; DrawFrustum->SetAbsolute(true, true, false); DrawFrustum->SetRelativeLocation(OrigCamLoc); DrawFrustum->SetRelativeRotation(OrigCamRot); DrawFrustum->RegisterComponent(); ConsoleCommand(TEXT("show camfrustums")); //called to render camera frustums from original player camera } GetWorld()->AddController(this); }
void AFPSGPlayerController::clientSetDeathCamera_Implementation(const FVector& cameraLocation, const FRotator& cameraRotation) { SetInitialLocationAndRotation(cameraLocation, cameraRotation); SetViewTarget(this); }
void AKinectPlayerController::ClientSetSpectatorCamera_Implementation(FVector CameraLocation, FRotator CameraRotation) { SetInitialLocationAndRotation(CameraLocation, CameraRotation); SetViewTarget(this); }