From a13f10139d33264fc9ebc5a15c75faf16fc7757e Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 7 Jul 2021 18:47:37 +0800 Subject: +Action Tool --- Assets/Scripts/Unit/UnitRootMotion.cs | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Assets/Scripts/Unit/UnitRootMotion.cs (limited to 'Assets/Scripts/Unit/UnitRootMotion.cs') diff --git a/Assets/Scripts/Unit/UnitRootMotion.cs b/Assets/Scripts/Unit/UnitRootMotion.cs new file mode 100644 index 00000000..40a82f1d --- /dev/null +++ b/Assets/Scripts/Unit/UnitRootMotion.cs @@ -0,0 +1,37 @@ +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; + } + } +} -- cgit v1.1-26-g67d0