diff --git a/Source/Editor/Viewport/Cameras/FPSCamera.cs b/Source/Editor/Viewport/Cameras/FPSCamera.cs index 2e6f63a11..e60def838 100644 --- a/Source/Editor/Viewport/Cameras/FPSCamera.cs +++ b/Source/Editor/Viewport/Cameras/FPSCamera.cs @@ -89,6 +89,11 @@ namespace FlaxEditor.Viewport.Cameras ShowSphere(ref sphere); } + /// + /// Moves the viewport to visualize selected actors. + /// + /// The actors to show. + /// The used orientation. public void ShowActor(Actor actor, ref Quaternion orientation) { Editor.GetActorEditorSphere(actor, out BoundingSphere sphere); @@ -117,6 +122,11 @@ namespace FlaxEditor.Viewport.Cameras ShowSphere(ref mergesSphere); } + /// + /// Moves the viewport to visualize selected actors. + /// + /// The actors to show. + /// The used orientation. public void ShowActors(List actors, ref Quaternion orientation) { if (actors.Count == 0) diff --git a/Source/Editor/Viewport/EditorViewport.cs b/Source/Editor/Viewport/EditorViewport.cs index c1a20286c..6fb97792a 100644 --- a/Source/Editor/Viewport/EditorViewport.cs +++ b/Source/Editor/Viewport/EditorViewport.cs @@ -542,13 +542,7 @@ namespace FlaxEditor.Viewport if (_isOrtho) { var orient = ViewOrientation; - if (!Editor.Instance.SceneEditing.HasSthSelected) - { - var pos = new Vector3(0.0f) + Vector3.Backward * ViewOrientation * 1000.0f; - ((FPSCamera)ViewportCamera).MoveViewport(pos, ViewOrientation); - } - else - ((FPSCamera)ViewportCamera).ShowActors(Editor.Instance.Windows.EditWin.Viewport.TransformGizmo.SelectedParents, ref orient); + OrientViewport(ref orient); } } }; @@ -567,13 +561,7 @@ namespace FlaxEditor.Viewport cameraView.ButtonClicked += button => { var orient = Quaternion.Euler((Vector3)button.Tag); - if (Editor.Instance.SceneEditing.HasSthSelected) - ((FPSCamera)ViewportCamera).ShowActors(Editor.Instance.Windows.EditWin.Viewport.TransformGizmo.SelectedParents, ref orient); - else - { - var pos = new Vector3(0.0f) + Vector3.Backward * orient * 2000.0f; - ((FPSCamera)ViewportCamera).MoveViewport(pos, orient); - } + OrientViewport(ref orient); }; } @@ -676,6 +664,19 @@ namespace FlaxEditor.Viewport task.Begin += OnRenderBegin; } + private void OrientViewport(ref Quaternion orientation) + { + if (Editor.Instance.SceneEditing.HasSthSelected) + { + ((FPSCamera)ViewportCamera).ShowActors(Editor.Instance.Windows.EditWin.Viewport.TransformGizmo.SelectedParents, ref orientation); + } + else + { + var pos = new Vector3(0.0f) + Vector3.Backward * orientation * 2000.0f; + ((FPSCamera)ViewportCamera).MoveViewport(pos, orientation); + } + } + private void OnEditorOptionsChanged(EditorOptions options) { _mouseSensitivity = options.Viewport.MouseSensitivity;