summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Test/SaionjiScript.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-15 19:05:22 +0800
committerchai <chaifix@163.com>2020-10-15 19:05:22 +0800
commitf049177e20a276049c61edbad631c1b2bbdd5706 (patch)
tree7d1a1cd9b690a5d9a8b9a65554a191d6ec769601 /Assets/Scripts/Test/SaionjiScript.cs
parent6990a0d1fbdcbbf404f40713363ac1a148c8840a (diff)
-advanced inspector
+odin
Diffstat (limited to 'Assets/Scripts/Test/SaionjiScript.cs')
-rw-r--r--Assets/Scripts/Test/SaionjiScript.cs23
1 files changed, 23 insertions, 0 deletions
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>();
+
+ // 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;
+ }
+ }
+
}