diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs
index 7d08213fa..034086ccc 100644
--- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs
+++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs
@@ -471,7 +471,13 @@ namespace FlaxEditor.Viewport
trans.SetRotation(ref world);
trans.Translation += world.TranslationVector;
}
- obj.Transform = trans;
+ if (obj is ActorNode actorNode)
+ {
+ actorNode.Actor.Position = trans.Translation;
+ actorNode.Actor.Orientation = trans.Orientation;
+ }
+ else
+ obj.Transform = trans;
}
TransformGizmo.EndTransforming();
}
@@ -520,7 +526,9 @@ namespace FlaxEditor.Viewport
/// The scale delta.
public void ApplyTransform(List selection, ref Vector3 translationDelta, ref Quaternion rotationDelta, ref Vector3 scaleDelta)
{
+ bool applyTranslation = !translationDelta.IsZero;
bool applyRotation = !rotationDelta.IsIdentity;
+ bool applyScale = !scaleDelta.IsZero;
bool useObjCenter = TransformGizmo.ActivePivot == TransformGizmoBase.PivotType.ObjectCenter;
Vector3 gizmoPosition = TransformGizmo.Position;
@@ -555,13 +563,29 @@ namespace FlaxEditor.Viewport
}
// Apply scale
- const float scaleLimit = 99_999_999.0f;
- trans.Scale = Float3.Clamp(trans.Scale + scaleDelta, new Float3(-scaleLimit), new Float3(scaleLimit));
+ if (applyScale)
+ {
+ const float scaleLimit = 99_999_999.0f;
+ trans.Scale = Float3.Clamp(trans.Scale + scaleDelta, new Float3(-scaleLimit), new Float3(scaleLimit)); ;
+ }
// Apply translation
- trans.Translation += translationDelta;
+ if (applyTranslation)
+ {
+ trans.Translation += translationDelta;
+ }
- obj.Transform = trans;
+ if (obj is ActorNode actorNode)
+ {
+ if (applyTranslation)
+ actorNode.Actor.Position = trans.Translation;
+ if (applyRotation)
+ actorNode.Actor.Orientation = trans.Orientation;
+ if (applyScale)
+ actorNode.Actor.Scale = trans.Scale;
+ }
+ else
+ obj.Transform = trans;
}
}
diff --git a/Source/Editor/Viewport/PrefabWindowViewport.cs b/Source/Editor/Viewport/PrefabWindowViewport.cs
index d7624892d..2f4124e8c 100644
--- a/Source/Editor/Viewport/PrefabWindowViewport.cs
+++ b/Source/Editor/Viewport/PrefabWindowViewport.cs
@@ -357,7 +357,9 @@ namespace FlaxEditor.Viewport
/// The scale delta.
public void ApplyTransform(List selection, ref Vector3 translationDelta, ref Quaternion rotationDelta, ref Vector3 scaleDelta)
{
+ bool applyTranslation = !translationDelta.IsZero;
bool applyRotation = !rotationDelta.IsIdentity;
+ bool applyScale = !scaleDelta.IsZero;
bool useObjCenter = TransformGizmo.ActivePivot == TransformGizmoBase.PivotType.ObjectCenter;
Vector3 gizmoPosition = TransformGizmo.Position;
@@ -387,13 +389,29 @@ namespace FlaxEditor.Viewport
}
// Apply scale
- const float scaleLimit = 99_999_999.0f;
- trans.Scale = Float3.Clamp(trans.Scale + scaleDelta, new Float3(-scaleLimit), new Float3(scaleLimit));
+ if (applyScale)
+ {
+ const float scaleLimit = 99_999_999.0f;
+ trans.Scale = Float3.Clamp(trans.Scale + scaleDelta, new Float3(-scaleLimit), new Float3(scaleLimit));
+ }
// Apply translation
- trans.Translation += translationDelta;
+ if (applyTranslation)
+ {
+ trans.Translation += translationDelta;
+ }
- obj.Transform = trans;
+ if (obj is ActorNode actorNode)
+ {
+ if (applyTranslation)
+ actorNode.Actor.Position = trans.Translation;
+ if (applyRotation)
+ actorNode.Actor.Orientation = trans.Orientation;
+ if (applyScale)
+ actorNode.Actor.Scale = trans.Scale;
+ }
+ else
+ obj.Transform = trans;
}
}