From 4b6b24f4c55689b01bdf1d19434d7e88abe126e4 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 18 Apr 2024 17:22:37 +0200 Subject: [PATCH] Fix precision of blend points moving in Multi Blend --- Source/Editor/Surface/Archetypes/Animation.MultiBlend.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Editor/Surface/Archetypes/Animation.MultiBlend.cs b/Source/Editor/Surface/Archetypes/Animation.MultiBlend.cs index ee2178c7c..41b984650 100644 --- a/Source/Editor/Surface/Archetypes/Animation.MultiBlend.cs +++ b/Source/Editor/Surface/Archetypes/Animation.MultiBlend.cs @@ -35,6 +35,7 @@ namespace FlaxEditor.Surface.Archetypes { private readonly BlendPointsEditor _editor; private readonly int _index; + private Float2 _mousePosOffset; private bool _isMouseDown, _mouseMoved; private object[] _mouseMoveStartValues; @@ -65,6 +66,7 @@ namespace FlaxEditor.Surface.Archetypes _editor._node.Surface.AddBatchedUndoAction(new EditNodeValuesAction(_editor._node, _mouseMoveStartValues, true)); _mouseMoveStartValues = null; } + _editor._node.Surface.MarkAsEdited(); } /// @@ -103,6 +105,7 @@ namespace FlaxEditor.Surface.Archetypes _isMouseDown = true; _mouseMoved = false; _mouseMoveStartValues = null; + _mousePosOffset = -location; StartMouseCapture(); return true; } @@ -134,7 +137,7 @@ namespace FlaxEditor.Surface.Archetypes _mouseMoveStartValues = _editor._node.Surface.Undo != null ? (object[])_editor._node.Values.Clone() : null; } - var newLocation = Location + location; + var newLocation = Location + location + _mousePosOffset; newLocation = _editor.BlendPointPosToBlendSpacePos(newLocation); if (Root != null && Root.GetKey(KeyboardKeys.Control)) { @@ -309,7 +312,6 @@ namespace FlaxEditor.Surface.Archetypes dataA.Y = Mathf.Clamp(location.Y, ranges.Z, ranges.W); _node.Values[4 + index * 2] = dataA; - _node.Surface.MarkAsEdited(); _node.UpdateUI(); }