Fix editor viewport camera glitch on first frame when using camera orbiting

This commit is contained in:
Wojtek Figat
2020-12-20 00:03:14 +01:00
parent 5cab22e20d
commit 973af724f4
2 changed files with 12 additions and 3 deletions

View File

@@ -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;

View File

@@ -699,6 +699,15 @@ namespace FlaxEditor.Viewport
input = _input;
}
/// <summary>
/// Gets the input state data (from the previous update).
/// </summary>
/// <param name="input">The input.</param>
public void GetPrevInput(out Input input)
{
input = _prevInput;
}
/// <summary>
/// Creates the projection matrix.
/// </summary>