From 973af724f40ae8a5849243289511994c0b67b487 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 20 Dec 2020 00:03:14 +0100 Subject: [PATCH] Fix editor viewport camera glitch on first frame when using camera orbiting --- Source/Editor/Viewport/Cameras/FPSCamera.cs | 6 +++--- Source/Editor/Viewport/EditorViewport.cs | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Viewport/Cameras/FPSCamera.cs b/Source/Editor/Viewport/Cameras/FPSCamera.cs index 95ae37ffb..5058bbc19 100644 --- a/Source/Editor/Viewport/Cameras/FPSCamera.cs +++ b/Source/Editor/Viewport/Cameras/FPSCamera.cs @@ -160,8 +160,8 @@ namespace FlaxEditor.Viewport.Cameras if (IsAnimatingMove) return; - EditorViewport.Input input; - Viewport.GetInput(out input); + Viewport.GetInput(out var input); + Viewport.GetPrevInput(out var prevInput); var mainViewport = Viewport as MainEditorGizmoViewport; bool isUsingGizmo = mainViewport != null && mainViewport.TransformGizmo.ActiveAxis != TransformGizmo.Axis.None; @@ -202,7 +202,7 @@ namespace FlaxEditor.Viewport.Cameras } // Rotate or orbit - if (input.IsRotating || (input.IsOrbiting && !isUsingGizmo)) + if (input.IsRotating || (input.IsOrbiting && !isUsingGizmo && prevInput.IsOrbiting)) { yaw += mouseDelta.X; pitch += mouseDelta.Y; diff --git a/Source/Editor/Viewport/EditorViewport.cs b/Source/Editor/Viewport/EditorViewport.cs index 5b120f33f..42385fd5e 100644 --- a/Source/Editor/Viewport/EditorViewport.cs +++ b/Source/Editor/Viewport/EditorViewport.cs @@ -699,6 +699,15 @@ namespace FlaxEditor.Viewport input = _input; } + /// + /// Gets the input state data (from the previous update). + /// + /// The input. + public void GetPrevInput(out Input input) + { + input = _prevInput; + } + /// /// Creates the projection matrix. ///