From a580d6785f26c6ed9e22e73c102dfa4739220124 Mon Sep 17 00:00:00 2001 From: Roman Zhuravlev Date: Sun, 21 Jul 2024 22:25:25 +0200 Subject: [PATCH] Ignore Translate/Rotate/Scale/TransformSpace hotkeys while holding RMB. Allows to use industry standard WER hotkeys for transformations and not change modes while navigating through level. --- Source/Editor/Viewport/EditorGizmoViewport.cs | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Viewport/EditorGizmoViewport.cs b/Source/Editor/Viewport/EditorGizmoViewport.cs index f0681e48d..0a0591015 100644 --- a/Source/Editor/Viewport/EditorGizmoViewport.cs +++ b/Source/Editor/Viewport/EditorGizmoViewport.cs @@ -360,11 +360,36 @@ namespace FlaxEditor.Viewport }; // Setup input actions - viewport.InputActions.Add(options => options.TranslateMode, () => transformGizmo.ActiveMode = TransformGizmoBase.Mode.Translate); - viewport.InputActions.Add(options => options.RotateMode, () => transformGizmo.ActiveMode = TransformGizmoBase.Mode.Rotate); - viewport.InputActions.Add(options => options.ScaleMode, () => transformGizmo.ActiveMode = TransformGizmoBase.Mode.Scale); + viewport.InputActions.Add(options => options.TranslateMode, () => + { + viewport.GetInput(out var input); + if (input.IsMouseRightDown) + return; + + transformGizmo.ActiveMode = TransformGizmoBase.Mode.Translate; + }); + viewport.InputActions.Add(options => options.RotateMode, () => + { + viewport.GetInput(out var input); + if (input.IsMouseRightDown) + return; + + transformGizmo.ActiveMode = TransformGizmoBase.Mode.Rotate; + }); + viewport.InputActions.Add(options => options.ScaleMode, () => + { + viewport.GetInput(out var input); + if (input.IsMouseRightDown) + return; + + transformGizmo.ActiveMode = TransformGizmoBase.Mode.Scale; + }); viewport.InputActions.Add(options => options.ToggleTransformSpace, () => { + viewport.GetInput(out var input); + if (input.IsMouseRightDown) + return; + transformGizmo.ToggleTransformSpace(); if (useProjectCache) editor.ProjectCache.SetCustomData("TransformSpaceState", transformGizmo.ActiveTransformSpace.ToString());