summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs')
-rw-r--r--Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs34
1 files changed, 25 insertions, 9 deletions
diff --git a/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs b/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
index 586bfbaa..f07d9671 100644
--- a/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
+++ b/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
@@ -55,14 +55,14 @@ public class AnimatorLayerInfo
{
get
{
- AnimatorStateInfo stateInfo = m_Animator.GetCurrentAnimatorStateInfo(layerIndex);
- AnimatorClipInfo[] clips = m_Animator.GetCurrentAnimatorClipInfo(layerIndex);
- if(clips == null || clips.Length == 0)
- {
- stateInfo = m_Animator.GetNextAnimatorStateInfo(layerIndex);
- }
- return stateInfo;
- }
+ AnimatorStateInfo stateInfo = m_Animator.GetCurrentAnimatorStateInfo(layerIndex);
+ if (isInTransition)
+ {
+ stateInfo = m_Animator.GetNextAnimatorStateInfo(layerIndex);
+ }
+ // Debug.Assert(stateInfo.IsName(layerName + "." + m_CurrentState));
+ return stateInfo;
+ }
}
private int preStateHash = -1;
@@ -178,8 +178,13 @@ public class AnimatorLayerInfo
TimelineEventProxy m_TimelineEventProxy;
- public AnimatorLayerInfo(UnitAnimation unitAnimation, Animator animator, int layer)
+ public string m_CurrentState;
+
+ public readonly string layerName;
+
+ public AnimatorLayerInfo(UnitAnimation unitAnimation, Animator animator, int layer, string layerName)
{
+ this.layerName = layerName;
this.m_UnitAnimation = unitAnimation;
this.m_Animator = animator;
this.layer = layer;
@@ -219,7 +224,18 @@ public class AnimatorLayerInfo
{
playbackSpeed = animationData.speedCurve.Evaluate(playbackNormalizedTime);
}
+ }
+ public void OnCrossFade(string animState, float normalizedTransitionDuration, float normalizedTimeOffset, float normalizedTransitionTime )
+ {
+ m_CurrentState = animState;
+ m_Animator.CrossFade(animState.ToString(), normalizedTransitionDuration, layerIndex, normalizedTimeOffset, normalizedTransitionTime);
+ }
+
+ public void OnPlay(string animState, float normalizedTime)
+ {
+ m_CurrentState = animState;
+ m_Animator.Play(animState, layerIndex, normalizedTime);
}
}