using System; using UnityEngine; namespace RebootKit.Engine.Components { [Flags] public enum TransformComponents { None = 0, Position = 1 << 0, Rotation = 1 << 1, Scale = 1 << 2, All = Position | Rotation | Scale } [DefaultExecutionOrder(100)] public class CopyTransform : MonoBehaviour { [SerializeField] TransformComponents m_Components = TransformComponents.All; [SerializeField] Transform m_Source; Transform m_Transform; void Awake() { m_Transform = transform; } void LateUpdate() { if (m_Components.HasFlag(TransformComponents.Position)) { m_Transform.position = m_Source.position; } if (m_Components.HasFlag(TransformComponents.Rotation)) { m_Transform.rotation = m_Source.rotation; } if (m_Components.HasFlag(TransformComponents.Scale)) { m_Transform.localScale = m_Source.localScale; } } } }