From 3d3f0b7ede44569ecaab523350feede9fee383c3 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 26 Oct 2020 08:36:27 +0800 Subject: * ability system --- .../AbilitySystem/Abilities/AttackAbility.cs | 38 ++++++++++++++++------ .../Scripts/AbilitySystem/Abilities/JumpAbility.cs | 11 +++++++ .../AbilitySystem/Abilities/JumpAbility.cs.meta | 11 +++++++ 3 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs create mode 100644 Assets/Scripts/AbilitySystem/Abilities/JumpAbility.cs.meta (limited to 'Assets/Scripts/AbilitySystem/Abilities') 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(); /// /// 在跑动状态时可以切换的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: -- cgit v1.1-26-g67d0