using System.Collections.Generic; using UnityEngine; public static class RotationTools { public static Quaternion GetRotationWith53Behaviour(Transform transform) { Quaternion rotation = Quaternion.identity; List qaternions = new List(); qaternions.Add(transform.localRotation); while (transform.parent) { transform = transform.parent; qaternions.Add(transform.localRotation); } // Reverse the list so the order of localRotations is root -> parent -> child qaternions.Reverse(); // Rotation is rootLocalRotation * ... * parentLocalRotation * ... * childLocalRotation for (int i = 0; i < qaternions.Count; ++i) { rotation *= qaternions[i]; } return rotation; } }