summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Components
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-09-03 09:45:03 +0800
committerchai <chaifix@163.com>2021-09-03 09:45:03 +0800
commit0a4dd643234284db73735f78ece9c209b80a72d6 (patch)
treea12d27457cc13d207ea7bc604fc3f86f7b10f89b /Assets/Scripts/Unit/Components
parent0d8b9832447b84fa62bd5f6f41af2507bf3001d5 (diff)
*misc
Diffstat (limited to 'Assets/Scripts/Unit/Components')
-rw-r--r--Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs3
-rw-r--r--Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs32
-rw-r--r--Assets/Scripts/Unit/Components/UnitCollider.cs2
3 files changed, 29 insertions, 8 deletions
diff --git a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs b/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs
index dbd4dd49..8d737277 100644
--- a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs
+++ b/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs
@@ -68,7 +68,7 @@ public class PCAnimation : UnitAnimation
private UnitActionData m_ActionData;
- public bool applyRootMotion { get; set; }// 动态设置root motion
+ public bool applyRootMotion { get; set; }
public bool applyRootCurve { get; set; } // 程序生成的root motion
public bool updateAnimationAuto { get; private set; } // 自动更新动画
@@ -129,6 +129,7 @@ public class PCAnimation : UnitAnimation
{
if (!applyRootMotion)
return;
+
m_Owner.unitRootMotion.UpdateRootMotion();
}
diff --git a/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs b/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
index a9c50ac3..db81a2ed 100644
--- a/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
+++ b/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
@@ -24,7 +24,7 @@ public class AnimatorLayerInfo
{
get
{
- AnimatorClipInfo[] clipInfos = clipInfo;
+ AnimatorClipInfo[] clipInfos = clipsInfo;
if (clipInfos == null || clipInfos.Length == 0)
return null;
var clip = clipInfos[0]; //选第一个
@@ -57,7 +57,7 @@ public class AnimatorLayerInfo
private int preStateHash = -1;
// 当前正在播放和融合的片段信息
- public AnimatorClipInfo[] clipInfo
+ public AnimatorClipInfo[] clipsInfo
{
get
{
@@ -78,6 +78,14 @@ public class AnimatorLayerInfo
}
}
+ public AnimatorClipInfo clipInfo
+ {
+ get
+ {
+ return clipsInfo[0];
+ }
+ }
+
public int stateHash
{
get
@@ -91,7 +99,7 @@ public class AnimatorLayerInfo
{
get
{
- return playbackNormalizedTime * clipInfo[0].clip.length;
+ return playbackNormalizedTime * clipInfo.clip.length;
}
}
@@ -116,7 +124,7 @@ public class AnimatorLayerInfo
//if (state.IsName("Attack0"))
//{
// Debug.Log("normalizedTime=" + state.normalizedTime);
- // Debug.Log("playbackTimeInSeconds=" + state.normalizedTime * clipInfo[0].clip.length);
+ // Debug.Log("playbackTimeInSeconds=" + state.normalizedTime * clipInfo.clip.length);
//}
return state.normalizedTime % 1f;
}
@@ -258,7 +266,13 @@ public class UnitAnimation : UnitComponent
if (layer == null)
return;
layer.OnPlay(animState, normalizedTime);
- }
+
+ UnitRootMotion rm = m_Owner.GetComponent<UnitRootMotion>();
+ if(rm)
+ {
+ rm.OnAnimationChange();
+ }
+ }
public void CrossFade(string animState, float normalizedTransitionDuration, int layerIndex = 0, float normalizedTimeOffset = float.NegativeInfinity, float normalizedTransitionTime = 0.0f)
{
@@ -266,6 +280,12 @@ public class UnitAnimation : UnitComponent
if (layer == null)
return;
layer.OnCrossFade(animState, normalizedTransitionDuration, normalizedTimeOffset, normalizedTransitionTime);
- }
+
+ UnitRootMotion rm = m_Owner.GetComponent<UnitRootMotion>();
+ if (rm)
+ {
+ rm.OnAnimationChange();
+ }
+ }
}
diff --git a/Assets/Scripts/Unit/Components/UnitCollider.cs b/Assets/Scripts/Unit/Components/UnitCollider.cs
index 63e1ff7f..797eb480 100644
--- a/Assets/Scripts/Unit/Components/UnitCollider.cs
+++ b/Assets/Scripts/Unit/Components/UnitCollider.cs
@@ -35,7 +35,7 @@ public class UnitCollider : UnitComponent
{
var layerInfo = m_Owner.unitAnimation.layers[0];
AnimationData animData = layerInfo.animationData;
- AnimatorClipInfo[] clipInfos = layerInfo.clipInfo;
+ AnimatorClipInfo[] clipInfos = layerInfo.clipsInfo;
//if(clipInfos == null || clipInfos.Length == 0)
//{
// return null;