39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |