diff options
author | chai <chaifix@163.com> | 2021-08-02 08:35:26 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-08-02 08:35:26 +0800 |
commit | ce73a13f28e5a947df8f1f87f1f1be20010952ec (patch) | |
tree | 2c430bcd93f2c09bd35340def7c556c7294d6b5d /Assets/Scripts/Unit/Component/UnitAnimation.cs | |
parent | 81acfeb9a1d88075899d9c21064330915caa59a4 (diff) |
* 测试
Diffstat (limited to 'Assets/Scripts/Unit/Component/UnitAnimation.cs')
-rw-r--r-- | Assets/Scripts/Unit/Component/UnitAnimation.cs | 69 |
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();
+
}
}
|