Viewports
Useful Classes:
FLevelEditorModule has a lot of useful entry points like
-
GetFirstActiveViewport(),
-
GetFirstLevelEditor(), etc
ILevelEditor
ILevelViewport & SLevelViewport: Widgets to control params for levelviewport:
-
StartPlayInEditorSession()
-
HasPlayInEditorViewport()
-
GetLevelViewportClient()
-
ToggleGameView()
-
AddOverlayWidget()
FLevelEditorViewportClient & FEditorViewportClient
Main class for Editor Viewports:
FEditorViewportClient
- Also handles most of the viewport UI actions e.g. SetRealtimePreview(), SetShowStats(), SetCameraLock()
Viewport Manipulation:
FEditorViewportClient::SetCameraSetup(const FVector& LocationForOrbiting, const FRotator& InOrbitRotation, const FVector& InOrbitZoom, const FVector& InOrbitLookAt, const FVector& InViewLocation, const FRotator &InViewRotation );
FEditorViewportClient::SetCameraLock()
FEditorViewportClient::SetViewRotation( InOrbitRotation );
FEditorViewportClient::SetViewLocation( InViewLocation + InOrbitZoom );
FEditorViewportClient::SetLookAtLocation( InOrbitLookAt );
//Current active level editing viewport
GCurrentLevelEditingViewportClient
GLastKeyLevelEditingViewportClient
Callbacks on viewport manipulation:
virtual void EditorApplyTranslation(const FVector& DeltaTranslation, bool bAltDown, bool bShiftDown, bool bCtrlDown) override;
virtual void EditorApplyRotation(const FRotator& DeltaRotation, bool bAltDown, bool bShiftDown, bool bCtrlDown) override;
virtual void EditorApplyScale(const FVector& DeltaScale, const FVector* PivotLocation, bool bAltDown, bool bShiftDown, bool bCtrlDown) override;
virtual void PostEditMove(bool bFinished) override;
virtual void PostEditComponentMove(bool bFinished) override;
Get All Viewports:
- /** The "manager" of all the layers for the UWorld currently being edited */
GEditor->Layers;
- /** List of all viewport clients */
GEditor->AllViewportClients;
- /** List of level editor viewport clients for level specific actions */
GEditor->LevelViewportClients;
Viewport Toggle RealTime:
viewportClient->ToggleRealtime()
viewportClient->IsRealTime()