using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [ExecuteInEditMode] public class SyncTransform : MonoBehaviour { [Flags] public enum ESyncTransfom { Position, Rotation, Scale, RotationY, } public ESyncTransfom syncMode; public Transform target; void Update() { if(syncMode.HasFlag(ESyncTransfom.Position)) { transform.position = Vector3.Lerp(transform.position, target.position, 0.2f); } if(syncMode.HasFlag(ESyncTransfom.Rotation)) { transform.rotation = target.rotation; } if(syncMode.HasFlag(ESyncTransfom.Scale)) { transform.localScale = target.localScale; } if(syncMode.HasFlag(ESyncTransfom.RotationY)) { Quaternion rot = target.rotation; Vector3 angle = rot.ToEuler(); transform.rotation = Quaternion.Euler(0, -90, 0)*Quaternion.Euler(0, angle.y, 0); } } }