diff --git a/Source/Editor/CustomEditors/Editors/Vector3Editor.cs b/Source/Editor/CustomEditors/Editors/Vector3Editor.cs index bd154056f..1a85e720f 100644 --- a/Source/Editor/CustomEditors/Editors/Vector3Editor.cs +++ b/Source/Editor/CustomEditors/Editors/Vector3Editor.cs @@ -134,18 +134,18 @@ namespace FlaxEditor.CustomEditors.Editors { case ValueChanged.X: valueChange = xValue - ((Float3)Values[0]).X; - yValue += valueChange; - zValue += valueChange; + yValue = NewLinkedValue(yValue, valueChange); + zValue = NewLinkedValue(zValue, valueChange); break; case ValueChanged.Y: valueChange = yValue - ((Float3)Values[0]).Y; - xValue += valueChange; - zValue += valueChange; + xValue = NewLinkedValue(xValue, valueChange); + zValue = NewLinkedValue(zValue, valueChange); break; case ValueChanged.Z: valueChange = zValue - ((Float3)Values[0]).Z; - xValue += valueChange; - yValue += valueChange; + xValue = NewLinkedValue(xValue, valueChange); + yValue = NewLinkedValue(yValue, valueChange); break; default: break; } @@ -164,6 +164,11 @@ namespace FlaxEditor.CustomEditors.Editors SetValue(v, token); } + private float NewLinkedValue(float value, float valueChange) + { + return Mathf.NearEqual(value, 0) ? value : value + valueChange; + } + /// public override void Refresh() {