From 0d221e6c05d59d812d494f05b9916d85650032eb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Oct 2020 22:05:02 +0800 Subject: +action --- .../Scripts/AbilitySystem/Abilities/IdleAbility.cs | 16 ++++++-- Assets/Scripts/AbilitySystem/AbilitySystem.cs | 45 ++++++++++++++++++++++ Assets/Scripts/AbilitySystem/AbilitySystem.cs.meta | 11 ++++++ Assets/Scripts/AbilitySystem/Actions.meta | 8 ++++ Assets/Scripts/AbilitySystem/Actions/ActionBase.cs | 18 +++++++++ .../AbilitySystem/Actions/ActionBase.cs.meta | 11 ++++++ .../AbilitySystem/Actions/ActionCrossFade.cs | 18 +++++++++ .../AbilitySystem/Actions/ActionCrossFade.cs.meta | 11 ++++++ .../Scripts/AbilitySystem/Actions/ActionFreze.cs | 18 +++++++++ .../AbilitySystem/Actions/ActionFreze.cs.meta | 11 ++++++ .../Scripts/AbilitySystem/Actions/ActionPlaySfx.cs | 18 +++++++++ .../AbilitySystem/Actions/ActionPlaySfx.cs.meta | 11 ++++++ .../AbilitySystem/Conditions/ConditionAnimRange.cs | 8 ++-- .../AbilitySystem/Conditions/ConditionBase.cs | 6 +-- .../AbilitySystem/Triggers/AbilityTrigger.cs | 1 - 15 files changed, 201 insertions(+), 10 deletions(-) create mode 100644 Assets/Scripts/AbilitySystem/AbilitySystem.cs create mode 100644 Assets/Scripts/AbilitySystem/AbilitySystem.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Actions.meta create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionBase.cs create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionBase.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs.meta (limited to 'Assets/Scripts/AbilitySystem') diff --git a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs index c323d99e..435edb93 100644 --- a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs +++ b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs @@ -15,13 +15,18 @@ public class IdleAbility : AbilityBase /// private List m_AbilityTriggers; - public IdleAbility(int hash) + public IdleAbility(int animation) : base() { - m_AnimHash = hash; + m_AnimHash = animation; } - public override void OnInit() + public override void OnEnter() + { + + } + + public override void OnInit() { base.OnInit(); } @@ -37,4 +42,9 @@ public class IdleAbility : AbilityBase base.OnUpdate(); } + public void AddTrigger() + { + + } + } diff --git a/Assets/Scripts/AbilitySystem/AbilitySystem.cs b/Assets/Scripts/AbilitySystem/AbilitySystem.cs new file mode 100644 index 00000000..ce4ff49e --- /dev/null +++ b/Assets/Scripts/AbilitySystem/AbilitySystem.cs @@ -0,0 +1,45 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 每个角色拥有一个ablity system +/// +public class AbilitySystem +{ + /// + /// 当前执行的ability + /// + private AbilityBase m_Currrent; + + public AbilityBase Current + { + get + { + return m_Currrent; + } + } + + private List m_Abilities; + + public void ForceStart(AbilityBase ability) + { + if (ability == null) + return; + ability.OnEnter(); + } + + public void AddAbility(AbilityBase ability) + { + m_Abilities.Add(ability); + } + + public void OnUpdate() + { + if(m_Currrent != null) + { + m_Currrent.OnUpdate(); + } + } + +} \ No newline at end of file diff --git a/Assets/Scripts/AbilitySystem/AbilitySystem.cs.meta b/Assets/Scripts/AbilitySystem/AbilitySystem.cs.meta new file mode 100644 index 00000000..52e8267c --- /dev/null +++ b/Assets/Scripts/AbilitySystem/AbilitySystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2cf426be55a8b8b48a1b794fa6938e94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions.meta b/Assets/Scripts/AbilitySystem/Actions.meta new file mode 100644 index 00000000..d3b985d9 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11a73902b983ea045bd5fb50d69dc802 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionBase.cs b/Assets/Scripts/AbilitySystem/Actions/ActionBase.cs new file mode 100644 index 00000000..f3d67fff --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionBase.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionBase : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionBase.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionBase.cs.meta new file mode 100644 index 00000000..8ef84b69 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bbdb3ec1494e7c8418f9068fb2815cfc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs b/Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs new file mode 100644 index 00000000..57b1bd2b --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionCrossFade : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs.meta new file mode 100644 index 00000000..6eed1575 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 86ec4b9e82965164ba7d950129542f85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs b/Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs new file mode 100644 index 00000000..7f26f35a --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionFreze : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs.meta new file mode 100644 index 00000000..eb9fe77a --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 32c173c981e85414c83ec9b0fc7d9722 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs b/Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs new file mode 100644 index 00000000..73319e9e --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionPlaySfx : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs.meta new file mode 100644 index 00000000..2b206e8f --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 302075a0d3527d44f9188351f0f6d070 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs index c41e17e1..82db03e0 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs @@ -8,16 +8,18 @@ using UnityEngine; public sealed class ConditionAnimRange : ConditionBase { Vector2 m_TimeRange = new Vector2(); + Animator m_Animator; - public ConditionAnimRange(float start, float end) + public ConditionAnimRange(Animator animator, float start, float end) { m_TimeRange.Set(start, end); - } public override bool Evaluate() { - return false; + AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); + float time = info.normalizedTime; + return time >= m_TimeRange.x && time <= m_TimeRange.y; } } diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs index e63bedb0..38889278 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs @@ -104,7 +104,7 @@ public sealed class ConditionNone : ConditionBase /// -/// 两个condition都达成才会返回真 +/// 多个condition都达成才会返回真 /// public sealed class ConditionMultiAnd : ConditionBase { @@ -128,7 +128,7 @@ public sealed class ConditionMultiAnd : ConditionBase } /// -/// 两个condition至少一个达成才会返回真 +/// 多个condition至少一个达成才会返回真 /// public sealed class ConditionMultiOr : ConditionBase { @@ -152,7 +152,7 @@ public sealed class ConditionMultiOr : ConditionBase } /// -/// 两个condition都不达成才会返回真 +/// 多个condition都不达成才会返回真 /// public sealed class ConditionMultiNone : ConditionBase { diff --git a/Assets/Scripts/AbilitySystem/Triggers/AbilityTrigger.cs b/Assets/Scripts/AbilitySystem/Triggers/AbilityTrigger.cs index 34dda3b2..ab325866 100644 --- a/Assets/Scripts/AbilitySystem/Triggers/AbilityTrigger.cs +++ b/Assets/Scripts/AbilitySystem/Triggers/AbilityTrigger.cs @@ -20,7 +20,6 @@ public class AbilityTrigger : Trigger // 如果满足条件,切换到下一个ability if (IsFulfilled()) { - return true; } return base.Update(); -- cgit v1.1-26-g67d0