From ce73a13f28e5a947df8f1f87f1f1be20010952ec Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 2 Aug 2021 08:35:26 +0800 Subject: =?UTF-8?q?*=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Unit/Component/UnitAnimation.cs | 69 +++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 2 deletions(-) (limited to 'Assets/Scripts/Unit/Component/UnitAnimation.cs') 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 triggers = new Dictionary() { + { 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(); + } } -- cgit v1.1-26-g67d0