UE4.27で確認
// Get Current View Info (EditorMode, PlayMode). auto GetCurrentViewportInfo = [](const UWorld* world, FVector2D& out_viewport_size, FVector& out_view_location, FQuat& out_view_quat) { if (!world) return; #if WITH_EDITOR if (world->WorldType == EWorldType::Editor || world->WorldType == EWorldType::EditorPreview) { // EditorMode. // Use First Editor Viewport. for (FLevelEditorViewportClient* level_viewport_clients : GEditor->GetLevelViewportClients()) { if (level_viewport_clients && level_viewport_clients->IsPerspective()) { out_viewport_size = level_viewport_clients->Viewport->GetSizeXY(); out_view_location = level_viewport_clients->GetViewLocation(); out_view_quat = level_viewport_clients->GetViewRotation().Quaternion(); break; } } } else #endif { // Non EditorMode. // Use First PlayerCamera. if (auto* camera_manager = UGameplayStatics::GetPlayerCameraManager(world, 0)) { GEngine->GameViewport->GetViewportSize(out_viewport_size); out_view_location = camera_manager->GetCameraLocation(); out_view_quat = camera_manager->GetCameraRotation().Quaternion(); } } return; }; const UWorld* world = [ワールド]; FVector2D out_viewport_size; FVector out_view_location; FQuat out_view_quat; // Get Info. GetCurrentViewportInfo(world, out_viewport_size, out_view_location, out_view_quat);