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 - Assets/Scripts/Physics/PhysicsBody.cs | 15 +++++++- Assets/Scripts/Test/SaionjiScript.cs | 2 - Assets/Scripts/Test/SaionjiScript_Ability.cs | 15 ++++---- Assets/Scripts/Test/SaionjiScript_Anim.cs | 28 ++++++++++++++ Assets/Scripts/Test/SaionjiScript_Anim.cs.meta | 11 ++++++ 20 files changed, 260 insertions(+), 22 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 create mode 100644 Assets/Scripts/Test/SaionjiScript_Anim.cs create mode 100644 Assets/Scripts/Test/SaionjiScript_Anim.cs.meta (limited to 'Assets') 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(); diff --git a/Assets/Scripts/Physics/PhysicsBody.cs b/Assets/Scripts/Physics/PhysicsBody.cs index 77f52474..8353a5aa 100644 --- a/Assets/Scripts/Physics/PhysicsBody.cs +++ b/Assets/Scripts/Physics/PhysicsBody.cs @@ -26,9 +26,19 @@ public sealed class PhysicsBody : MonoBehaviour { return m_Weight; } - } + } - [SerializeField] + [SerializeField] + private bool m_UseGravity; + public bool UseGravity + { + get + { + return m_UseGravity; + } + } + + [SerializeField] private Vector3 m_Accelaration; public Vector3 Accelaration { @@ -42,4 +52,5 @@ public sealed class PhysicsBody : MonoBehaviour [SerializeField] private float m_Frication; + } diff --git a/Assets/Scripts/Test/SaionjiScript.cs b/Assets/Scripts/Test/SaionjiScript.cs index 84e658de..c252645b 100644 --- a/Assets/Scripts/Test/SaionjiScript.cs +++ b/Assets/Scripts/Test/SaionjiScript.cs @@ -29,8 +29,6 @@ public partial class SaionjiScript : MonoBehaviour private void Update() { - if(m_CurrentAblity != null) - m_CurrentAblity.OnUpdate(); //AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0); //if(info.normalizedTime > 0.8) diff --git a/Assets/Scripts/Test/SaionjiScript_Ability.cs b/Assets/Scripts/Test/SaionjiScript_Ability.cs index 81c74fad..cc6e8caf 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -4,20 +4,19 @@ using UnityEngine; public partial class SaionjiScript : MonoBehaviour { - /// - /// 当前的ability - /// - AbilityBase m_CurrentAblity; + /// + /// ability system + /// + AbilitySystem m_AbilitySystem = new AbilitySystem(); /// /// 设置abilities /// void SetupAbilities() { - // 基础ability - + IdleAbility idleAbility = new IdleAbility(Anim_Idle); + m_AbilitySystem.AddAbility(idleAbility); } - -} +} \ No newline at end of file diff --git a/Assets/Scripts/Test/SaionjiScript_Anim.cs b/Assets/Scripts/Test/SaionjiScript_Anim.cs new file mode 100644 index 00000000..08322b61 --- /dev/null +++ b/Assets/Scripts/Test/SaionjiScript_Anim.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public partial class SaionjiScript : MonoBehaviour +{ + int Anim_Idle; + int Anim_Run; + int Anim_RunStop; + int Anim_LightAttack1; + int Anim_LightAttack2; + int Anim_LightAttack3; + int Anim_LightAttack4; + int Anim_LightAttack5; + + void GetAnimHash() + { + Anim_Idle = Animator.StringToHash("Idle_Assassin"); + Anim_Run = Animator.StringToHash("Run_Sword_Fast"); + + Anim_LightAttack1 = Animator.StringToHash("Light_Attk_1"); + Anim_LightAttack2 = Animator.StringToHash("Light_Attk_2"); + Anim_LightAttack3 = Animator.StringToHash("Light_Attk_3"); + Anim_LightAttack4 = Animator.StringToHash("Light_Attk_4"); + Anim_LightAttack5 = Animator.StringToHash("Light_Attk_5"); + } + +} diff --git a/Assets/Scripts/Test/SaionjiScript_Anim.cs.meta b/Assets/Scripts/Test/SaionjiScript_Anim.cs.meta new file mode 100644 index 00000000..4b9e51ec --- /dev/null +++ b/Assets/Scripts/Test/SaionjiScript_Anim.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f9ceb597e2e03c45a350f0f607c3d59 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0