From cc681de30edf9e331777d5afb0cd6a6f347f571a Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Sat, 30 Sep 2023 21:33:27 -0500 Subject: [PATCH] Fix more and add bool check to orient the actor or not. --- Source/Engine/Level/Actor.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Level/Actor.cs b/Source/Engine/Level/Actor.cs index ff3c7c4fa..bcb91a3bc 100644 --- a/Source/Engine/Level/Actor.cs +++ b/Source/Engine/Level/Actor.cs @@ -364,13 +364,20 @@ namespace FlaxEngine /// The point (world-space). /// The axis (normalized). /// The angle (in degrees). - public void RotateAround(Vector3 point, Vector3 axis, float angle) + /// /// Whether to orient the actor the same amount as rotation. + public void RotateAround(Vector3 point, Vector3 axis, float angle, bool orientActor = true) { var transform = Transform; var q = Quaternion.RotationAxis(axis, angle * Mathf.DegreesToRadians); var dif = (transform.Translation - point) * q; - transform.Translation = point + dif; - transform.Orientation *= q; + if (Vector3.NearEqual(point, transform.Translation)) + transform.Orientation *= q; + else + { + transform.Translation = point + dif; + if (orientActor) + transform.Orientation *= q; + } Transform = transform; }