From f049177e20a276049c61edbad631c1b2bbdd5706 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 15 Oct 2020 19:05:22 +0800 Subject: -advanced inspector +odin --- Assets/Scripts/Test/SaionjiScript.cs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'Assets/Scripts/Test') diff --git a/Assets/Scripts/Test/SaionjiScript.cs b/Assets/Scripts/Test/SaionjiScript.cs index c252645b..a3216dd5 100644 --- a/Assets/Scripts/Test/SaionjiScript.cs +++ b/Assets/Scripts/Test/SaionjiScript.cs @@ -37,4 +37,27 @@ public partial class SaionjiScript : MonoBehaviour //} } + // 更新顺序: + // internal animator update -> OnAnimatorMove() -> physics + // 角色最后的位置以物理系统为准(如果加入物理系统的话) + // 如果后续有物理处理,会重写transform + // 对于后续不受物理管理的动作,不需要修改transform + void OnAnimatorMove() + { + Animator animator = GetComponent(); + + // animator.deltaPosition和animator.deltaRotation是animator做的root motion后的结果 + // 在后面做一个硬性约束z=0,将角色限制在z=0平面上 + if (animator) + { + Vector3 position = transform.position; + position.x += animator.deltaPosition.x; + position.y += animator.deltaPosition.y; + transform.position = position; + + // animation clip导入设置旋转一般上设置为baked inpose,不需要手动限制 + transform.rotation *= animator.deltaRotation; + } + } + } -- cgit v1.1-26-g67d0