summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Component/UnitAnimation.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/Component/UnitAnimation.cs')
-rw-r--r--Assets/Scripts/Unit/Component/UnitAnimation.cs69
1 files changed, 67 insertions, 2 deletions
diff --git a/Assets/Scripts/Unit/Component/UnitAnimation.cs b/Assets/Scripts/Unit/Component/UnitAnimation.cs
index d30dffe0..7ebd780c 100644
--- a/Assets/Scripts/Unit/Component/UnitAnimation.cs
+++ b/Assets/Scripts/Unit/Component/UnitAnimation.cs
@@ -22,14 +22,60 @@ public class UnitAnimation : UnitComponent
ToHitKnockDown,
ToJump,
- ToWalk,
+ ToWalk,
+
+ ToAttack,
+
+ ToRise,
+
+ ToStinger,
+
+ ToTurn,
}
+ // animator状态
+ public enum EAnimState
+ {
+ Idle,
+ Move,
+ Jump,
+ Hit,
+ Attack,
+ Rise,
+ Stinger,
+ Turn,
+ }
+
+ public Dictionary<EAnimState, ETrigger> triggers = new Dictionary<EAnimState, ETrigger>() {
+ { EAnimState.Idle, ETrigger.ToIdle},
+ { EAnimState.Move, ETrigger.ToMove},
+ { EAnimState.Jump, ETrigger.ToJump},
+ { EAnimState.Attack, ETrigger.ToAttack},
+ { EAnimState.Rise, ETrigger.ToRise},
+ { EAnimState.Stinger, ETrigger.ToStinger},
+ { EAnimState.Turn , ETrigger.ToTurn},
+ };
+
+ public Animator animator { get { return m_Animator; } }
private Animator m_Animator;
private TimelineEvent m_Timeline;
private UnitActionData m_ActionData;
+ public AnimatorStateInfo stateInfo
+ {
+ get
+ {
+ return m_Animator.GetCurrentAnimatorStateInfo(0);
+ }
+ }
+
+ public EAnimState curState { get { return m_CurState; } }
+ private EAnimState m_CurState;
+
+ public float playbackTime { get { return m_PlaybackTime; } }
+ private float m_PlaybackTime;
+
public override void Initialize()
{
base.Initialize();
@@ -43,10 +89,29 @@ public class UnitAnimation : UnitComponent
}
}
- public void Play(ETrigger trigger)
+ public void Play(EAnimState state)
{
+ m_CurState = state;
+ ETrigger trigger = triggers[state];
string toAnim = trigger.ToString();
m_Animator.SetTrigger(toAnim);
+ m_Animator.speed = 0;
+ m_PlaybackTime = 0;
+ m_Owner.unitRootMotion.Reset();
+ }
+
+ public override void OnUpdate()
+ {
+ base.OnUpdate();
+
+ m_PlaybackTime += Time.deltaTime;
+
+ m_Animator.speed = 1;
+ m_Animator.Update(Time.deltaTime);
+ m_Animator.speed = 0;
+
+ m_Owner.unitRootMotion.UpdateRootMotion();
+
}
}