summaryrefslogtreecommitdiff
path: root/Assets/Scripts
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-11-23 08:57:43 +0800
committerchai <chaifix@163.com>2020-11-23 08:57:43 +0800
commit501903f8ecf5a7ce2f25dcee1685f2b906f9817e (patch)
treef7ea970f4d229e28e81249e111bedbeb74009aa1 /Assets/Scripts
parentd2176a3d4bd427cd0f448df736b5aff18d1d9017 (diff)
*misc
Diffstat (limited to 'Assets/Scripts')
-rw-r--r--Assets/Scripts/Avatar/EnforceZCoord.cs41
-rw-r--r--Assets/Scripts/Avatar/EnforceZCoord.cs.meta11
-rw-r--r--Assets/Scripts/Props.meta8
-rw-r--r--Assets/Scripts/Scene.meta8
4 files changed, 52 insertions, 16 deletions
diff --git a/Assets/Scripts/Avatar/EnforceZCoord.cs b/Assets/Scripts/Avatar/EnforceZCoord.cs
new file mode 100644
index 00000000..57a50b2b
--- /dev/null
+++ b/Assets/Scripts/Avatar/EnforceZCoord.cs
@@ -0,0 +1,41 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EnforceZCoord : MonoBehaviour
+{
+ void OnAnimatorMove()
+ {
+ Animator animator = GetComponent<Animator>();
+ if (animator == null)
+ return;
+
+ AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
+
+ if (stateInfo.IsTag("IgnoreRootMotion"))
+ {
+ // ignore root motion
+ //Debug.Log("ignore root motion ");
+ }
+ else if (stateInfo.IsTag("IgnoreRootMotionY"))
+ {
+ Vector3 position = transform.position;
+ position.x += animator.deltaPosition.x;
+ transform.position = position;
+
+ transform.rotation *= animator.deltaRotation;
+ }
+ else
+ {
+ // animator.deltaPosition和animator.deltaRotation是animator做的root motion后的结果
+ // 在后面做一个硬性约束z=0,将角色限制在z=0平面上
+ 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;
+ }
+ }
+}
diff --git a/Assets/Scripts/Avatar/EnforceZCoord.cs.meta b/Assets/Scripts/Avatar/EnforceZCoord.cs.meta
new file mode 100644
index 00000000..76f8b6ce
--- /dev/null
+++ b/Assets/Scripts/Avatar/EnforceZCoord.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 159e1f8ce7b6ba840b409f1e6e8f3e3e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Props.meta b/Assets/Scripts/Props.meta
deleted file mode 100644
index bb96602e..00000000
--- a/Assets/Scripts/Props.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: f299520ed9fcf4a45858ad4ef5a8d5d1
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Scene.meta b/Assets/Scripts/Scene.meta
deleted file mode 100644
index eb7a8716..00000000
--- a/Assets/Scripts/Scene.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: eaee2d0f48cff9b40baf0686a8105600
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant: