using System.Collections; using System.Collections.Generic; using UnityEngine; // 同步root motion到角色根节点 [ExecuteInEditMode] [DisallowMultipleComponent] public class UnitRootMotion : MonoBehaviour { Transform m_Root; Animator m_Animator; [HideInInspector] public bool applyToRoot = true; private void Awake() { m_Root = transform.parent; m_Animator = GetComponent(); } void OnAnimatorMove() { if (m_Animator == null) return; if (applyToRoot && m_Root) { m_Root.rotation *= m_Animator.deltaRotation; m_Root.position += m_Animator.deltaPosition; } else { transform.rotation *= m_Animator.deltaRotation; transform.position += m_Animator.deltaPosition; } } }