diff --git a/Source/Editor/Viewport/EditorViewport.cs b/Source/Editor/Viewport/EditorViewport.cs index 0e8c17d63..689fd3544 100644 --- a/Source/Editor/Viewport/EditorViewport.cs +++ b/Source/Editor/Viewport/EditorViewport.cs @@ -994,6 +994,7 @@ namespace FlaxEditor.Viewport var options = Editor.Instance.Options.Options.Input; if (_isControllingMouse) { + var rmbWheel = false; // Gather input { bool isAltDown = _input.IsAltDown; @@ -1009,10 +1010,11 @@ namespace FlaxEditor.Viewport _input.IsOrbiting = isAltDown && lbDown && !mbDown && !rbDown; // Control move speed with RMB+Wheel - if (useMovementSpeed && _input.IsMouseRightDown && wheelInUse) + rmbWheel = useMovementSpeed && _input.IsMouseRightDown && wheelInUse; + if (rmbWheel) { float step = 4.0f; - _wheelMovementChangeDeltaSum += _input.MouseWheelDelta; + _wheelMovementChangeDeltaSum += _input.MouseWheelDelta * Editor.Instance.Options.Options.Viewport.MouseWheelSensitivity; int camValueIndex = -1; for (int i = 0; i < EditorViewportCameraSpeedValues.Length; i++) { @@ -1076,7 +1078,7 @@ namespace FlaxEditor.Viewport // Calculate smooth mouse delta not dependant on viewport size Vector2 offset = _viewMousePos - _startPos; - if (_input.IsZooming && !_input.IsMouseRightDown && !_input.IsMouseLeftDown && !_input.IsMouseMiddleDown) + if (_input.IsZooming && !_input.IsMouseRightDown && !_input.IsMouseLeftDown && !_input.IsMouseMiddleDown && !_isOrtho && !rmbWheel) { offset = Vector2.Zero; } @@ -1127,11 +1129,11 @@ namespace FlaxEditor.Viewport } // Change Ortho size on mouse scroll - if (_isOrtho) + if (_isOrtho && !rmbWheel) { - var scroll = FlaxEngine.Input.MouseScrollDelta; - if (scroll != 0) - _orthoSize -= scroll * 0.2f * _orthoSize; + var scroll = _input.MouseWheelDelta; + if (scroll > Mathf.Epsilon || scroll < -Mathf.Epsilon) + _orthoSize -= scroll * Editor.Instance.Options.Options.Viewport.MouseWheelSensitivity * 0.2f * _orthoSize; } } else