diff options
Diffstat (limited to 'Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs')
-rw-r--r-- | Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs deleted file mode 100644 index 168b6086..00000000 --- a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public struct AttackAbilityConfig
-{
- public Vector3 velocity; // velocity setup
- public int motion;
- public Animator animator;
- public PhysicsBody body;
-}
-
-// 单独的一个招式
-public class AttackAbility : AbilityBase
-{
- AttackAbilityConfig m_Config = new AttackAbilityConfig();
-
- /// <summary>
- /// 在跑动状态时可以切换的ability
- /// </summary>
- private List<Trigger> m_Triggers = new List<Trigger>();
-
- private List<Trigger> m_LateTriggers = new List<Trigger>();
-
- /// <summary>
- /// 从动画结束开始计时
- /// </summary>
- float m_TimeCount;
- public float ExpireTime
- {
- get
- {
- return m_TimeCount;
- }
- }
-
- public AttackAbility(Animator animator, int animation, PhysicsBody body = null)
- {
- m_Config.animator = animator;
- m_Config.motion = animation;
- m_Config.velocity = Vector3.zero;
- m_Config.body = body;
- }
-
- public AttackAbility(AttackAbilityConfig config)
- {
- m_Config = config;
- }
-
- public override void OnInit()
- {
- }
-
- public override void OnDefend()
- {
- throw new System.NotImplementedException();
- }
-
- public override void OnEnter()
- {
- m_TimeCount = 0;
-
- m_Config.animator.CrossFade(m_Config.motion, 0);
-
- if(m_Config.body != null)
- {
- m_Config.body.LocalVelocity = m_Config.velocity;
- }
- }
-
- public override void OnExit()
- {
- m_TimeCount = 0;
- }
-
- public override void OnHit()
- {
- }
-
- public override void OnHurt()
- {
- }
-
- public override void OnTranslate(AbilityBase to)
- {
- }
-
- public override void OnUpdate()
- {
- AnimatorStateInfo info = m_Config.animator.GetCurrentAnimatorStateInfo(0);
- if(info.shortNameHash == m_Config.motion && info.normalizedTime >= 0.99f)
- {
- m_TimeCount += Time.deltaTime;
- }
- foreach (var abilityTrigger in m_Triggers)
- {
- if (abilityTrigger.Update() && abilityTrigger.Swallow)
- break;
- }
- }
-
- // 在物理模拟之后
- public override void OnLateUpdate()
- {
- foreach (var trigger in m_LateTriggers)
- {
- if (trigger.Update() && trigger.Swallow)
- break;
- }
- }
-
- public void AddTrigger(Trigger trigger)
- {
- if (trigger == null || m_Triggers.Contains(trigger))
- return;
- m_Triggers.Add(trigger);
- }
-
- public void AddLateTrigger(Trigger trigger)
- {
- if (trigger == null || m_LateTriggers.Contains(trigger))
- return;
- m_LateTriggers.Add(trigger);
- }
-
-}
|