From fd4f77ee3621bef2ce91ee6584ca9a2dc5064f96 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 17 Oct 2020 21:41:56 +0800 Subject: =?UTF-8?q?*=E7=A7=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbilitySystem/Abilities/AttackAbility.cs | 21 ++++++++++++++++++++- .../Scripts/AbilitySystem/Abilities/IdleAbility.cs | 2 -- 2 files changed, 20 insertions(+), 3 deletions(-) (limited to 'Assets/Scripts/AbilitySystem/Abilities') diff --git a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs index 067d49a8..a3cda9c9 100644 --- a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs +++ b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs @@ -12,6 +12,18 @@ public class AttackAbility : AbilityBase /// private List m_Triggers = new List(); + /// + /// 从动画结束开始计时 + /// + float m_TimeCount; + public float ExpireTime + { + get + { + return m_TimeCount; + } + } + public AttackAbility(Animator animator, int animation) { m_Animator = animator; @@ -30,11 +42,13 @@ public class AttackAbility : AbilityBase public override void OnEnter() { - m_Animator.CrossFade(m_AnimHash, 0); + m_TimeCount = 0; + m_Animator.CrossFade(m_AnimHash, 0f); } public override void OnExit() { + m_TimeCount = 0; } public override void OnHit() @@ -51,6 +65,11 @@ public class AttackAbility : AbilityBase public override void OnUpdate() { + AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); + if(info.shortNameHash == m_AnimHash && info.normalizedTime >= 0.99f) + { + m_TimeCount += Time.deltaTime; + } foreach (var abilityTrigger in m_Triggers) { if (abilityTrigger.Update()) diff --git a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs index 8be58188..dfd9478d 100644 --- a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs +++ b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs @@ -23,9 +23,7 @@ public class IdleAbility : AbilityBase public override void OnEnter() { - m_Animator.speed = 1; m_Animator.CrossFade(m_AnimHash, 0.3f); - m_Animator.speed = 0; } public override void OnInit() -- cgit v1.1-26-g67d0