diff --git a/Source/Editor/Viewport/EditorViewport.cs b/Source/Editor/Viewport/EditorViewport.cs
index 7e1c3d887..555e0cb7a 100644
--- a/Source/Editor/Viewport/EditorViewport.cs
+++ b/Source/Editor/Viewport/EditorViewport.cs
@@ -654,16 +654,20 @@ namespace FlaxEditor.Viewport
task.Begin += OnRenderBegin;
}
- private void OrientViewport(ref Quaternion orientation)
+ ///
+ /// Orients the viewport.
+ ///
+ /// The orientation.
+ protected virtual void OrientViewport(ref Quaternion orientation)
{
- if (Editor.Instance.SceneEditing.HasSthSelected)
+ if (ViewportCamera is FPSCamera fpsCamera)
{
- ((FPSCamera)ViewportCamera).ShowActors(Editor.Instance.Windows.EditWin.Viewport.TransformGizmo.SelectedParents, ref orientation);
+ var pos = Vector3.Zero + Vector3.Backward * orientation * 2000.0f;
+ fpsCamera.MoveViewport(pos, orientation);
}
else
{
- var pos = new Vector3(0.0f) + Vector3.Backward * orientation * 2000.0f;
- ((FPSCamera)ViewportCamera).MoveViewport(pos, orientation);
+ ViewportCamera.SetArcBallView(orientation, Vector3.Zero, 2000.0f);
}
}
@@ -1009,7 +1013,7 @@ namespace FlaxEditor.Viewport
// Check if update mouse
Vector2 size = Size;
- var options = Editor.Instance.Options.Options.Input;
+ var options = Editor.Instance.Options.Options;
if (_isControllingMouse)
{
var rmbWheel = false;
@@ -1033,7 +1037,7 @@ namespace FlaxEditor.Viewport
if (rmbWheel)
{
float step = 4.0f;
- _wheelMovementChangeDeltaSum += _input.MouseWheelDelta * Editor.Instance.Options.Options.Viewport.MouseWheelSensitivity;
+ _wheelMovementChangeDeltaSum += _input.MouseWheelDelta * options.Viewport.MouseWheelSensitivity;
int camValueIndex = -1;
for (int i = 0; i < EditorViewportCameraSpeedValues.Length; i++)
{
@@ -1061,27 +1065,27 @@ namespace FlaxEditor.Viewport
// Get input movement
Vector3 moveDelta = Vector3.Zero;
- if (win.GetKey(options.Forward.Key))
+ if (win.GetKey(options.Input.Forward.Key))
{
moveDelta += Vector3.Forward;
}
- if (win.GetKey(options.Backward.Key))
+ if (win.GetKey(options.Input.Backward.Key))
{
moveDelta += Vector3.Backward;
}
- if (win.GetKey(options.Right.Key))
+ if (win.GetKey(options.Input.Right.Key))
{
moveDelta += Vector3.Right;
}
- if (win.GetKey(options.Left.Key))
+ if (win.GetKey(options.Input.Left.Key))
{
moveDelta += Vector3.Left;
}
- if (win.GetKey(options.Up.Key))
+ if (win.GetKey(options.Input.Up.Key))
{
moveDelta += Vector3.Up;
}
- if (win.GetKey(options.Down.Key))
+ if (win.GetKey(options.Input.Down.Key))
{
moveDelta += Vector3.Down;
}
@@ -1152,7 +1156,7 @@ namespace FlaxEditor.Viewport
{
var scroll = _input.MouseWheelDelta;
if (scroll > Mathf.Epsilon || scroll < -Mathf.Epsilon)
- _orthoSize -= scroll * Editor.Instance.Options.Options.Viewport.MouseWheelSensitivity * 0.2f * _orthoSize;
+ _orthoSize -= scroll * options.Viewport.MouseWheelSensitivity * 0.2f * _orthoSize;
}
}
else
diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs
index e79b01313..64ee739df 100644
--- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs
+++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs
@@ -9,6 +9,7 @@ using FlaxEditor.GUI.Drag;
using FlaxEditor.SceneGraph;
using FlaxEditor.SceneGraph.Actors;
using FlaxEditor.Scripting;
+using FlaxEditor.Viewport.Cameras;
using FlaxEditor.Viewport.Widgets;
using FlaxEditor.Windows;
using FlaxEngine;
@@ -698,6 +699,17 @@ namespace FlaxEditor.Viewport
}
}
+ ///
+ protected override void OrientViewport(ref Quaternion orientation)
+ {
+ if (TransformGizmo.SelectedParents.Count != 0)
+ {
+ ((FPSCamera)ViewportCamera).ShowActors(TransformGizmo.SelectedParents, ref orientation);
+ }
+
+ base.OrientViewport(ref orientation);
+ }
+
///
protected override void OnLeftMouseButtonUp()
{
diff --git a/Source/Editor/Viewport/PrefabWindowViewport.cs b/Source/Editor/Viewport/PrefabWindowViewport.cs
index a9ee39b8c..1b66b8c95 100644
--- a/Source/Editor/Viewport/PrefabWindowViewport.cs
+++ b/Source/Editor/Viewport/PrefabWindowViewport.cs
@@ -849,6 +849,17 @@ namespace FlaxEditor.Viewport
Spawn(actor, ref hitLocation);
}
+ ///
+ protected override void OrientViewport(ref Quaternion orientation)
+ {
+ if (TransformGizmo.SelectedParents.Count != 0)
+ {
+ ((FPSCamera)ViewportCamera).ShowActors(TransformGizmo.SelectedParents, ref orientation);
+ }
+
+ base.OrientViewport(ref orientation);
+ }
+
///
public override DragDropEffect OnDragDrop(ref Vector2 location, DragData data)
{