diff options
Diffstat (limited to 'Assets/Scripts/AbilitySystem/Abilities')
3 files changed, 50 insertions, 10 deletions
diff --git a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs index fc4ce7e1..7b178621 100644 --- a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs +++ b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs @@ -2,11 +2,18 @@ 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
{
- Animator m_Animator;
- int m_AnimHash;
+ AttackAbilityConfig m_Config = new AttackAbilityConfig();
/// <summary>
/// 在跑动状态时可以切换的ability
@@ -27,15 +34,21 @@ public class AttackAbility : AbilityBase }
}
- public AttackAbility(Animator animator, int animation)
+ public AttackAbility(Animator animator, int animation, PhysicsBody body = null)
{
- m_Animator = animator;
- m_AnimHash = animation;
+ m_Config.animator = animator;
+ m_Config.motion = animation;
+ m_Config.velocity = Vector3.zero;
+ m_Config.body = body;
}
- public override void OnInit()
+ public AttackAbility(AttackAbilityConfig config)
{
+ m_Config = config;
+ }
+ public override void OnInit()
+ {
}
public override void OnDefend()
@@ -46,8 +59,13 @@ public class AttackAbility : AbilityBase public override void OnEnter()
{
m_TimeCount = 0;
- // 招式不要有过渡时间
- m_Animator.CrossFade(m_AnimHash, 0);
+
+ m_Config.animator.CrossFade(m_Config.motion, 0);
+
+ if(m_Config.body != null)
+ {
+ m_Config.body.Velocity = m_Config.velocity;
+ }
}
public override void OnExit()
@@ -69,8 +87,8 @@ public class AttackAbility : AbilityBase public override void OnUpdate()
{
- AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0);
- if(info.shortNameHash == m_AnimHash && info.normalizedTime >= 0.99f)
+ AnimatorStateInfo info = m_Config.animator.GetCurrentAnimatorStateInfo(0);
+ if(info.shortNameHash == m_Config.motion && info.normalizedTime >= 0.99f)
{
m_TimeCount += Time.deltaTime;
}
diff --git a/Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs new file mode 100644 index 00000000..4b8e5381 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class JumpAbility : AbilityBase +{ + Animator m_Animator; + + + +}
\ No newline at end of file diff --git a/Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs.meta b/Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs.meta new file mode 100644 index 00000000..6c67c462 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed5b337c63528354f8b4f2ba0a59481d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |