From 3d3f0b7ede44569ecaab523350feede9fee383c3 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 26 Oct 2020 08:36:27 +0800 Subject: * ability system --- .../Scripts/AbilitySystem/Conditions/Camera.meta | 8 ++++++ .../AbilitySystem/Conditions/ConditionAnimAtEnd.cs | 31 ---------------------- .../Conditions/ConditionAnimAtEnd.cs.meta | 11 -------- .../Conditions/ConditionAnimFrameRange.cs | 18 ------------- .../Conditions/ConditionAnimFrameRange.cs.meta | 11 -------- .../AbilitySystem/Conditions/ConditionAnimRange.cs | 28 ------------------- .../Conditions/ConditionAnimRange.cs.meta | 11 -------- .../AbilitySystem/Conditions/ConditionCombo.cs | 2 +- .../AbilitySystem/Conditions/ConditionInair.cs | 9 ++++++- .../Conditions/ConditionMotionAtEnd.cs | 31 ++++++++++++++++++++++ .../Conditions/ConditionMotionAtEnd.cs.meta | 11 ++++++++ .../Conditions/ConditionMotionFrameRange.cs | 18 +++++++++++++ .../Conditions/ConditionMotionFrameRange.cs.meta | 11 ++++++++ .../Conditions/ConditionMotionRange.cs | 28 +++++++++++++++++++ .../Conditions/ConditionMotionRange.cs.meta | 11 ++++++++ 15 files changed, 127 insertions(+), 112 deletions(-) create mode 100644 Assets/Scripts/AbilitySystem/Conditions/Camera.meta delete mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs delete mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs.meta delete mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs delete mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs.meta delete mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs delete mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs create mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs create mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs create mode 100644 Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs.meta (limited to 'Assets/Scripts/AbilitySystem/Conditions') diff --git a/Assets/Scripts/AbilitySystem/Conditions/Camera.meta b/Assets/Scripts/AbilitySystem/Conditions/Camera.meta new file mode 100644 index 00000000..bfa55719 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Conditions/Camera.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d7f28027add89c448243fbe5ea14144 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs deleted file mode 100644 index cfdcfab5..00000000 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -/// -/// 动画已经播放完毕 -/// -public class ConditionAnimAtEnd : ConditionBase -{ - Animator m_Animator; - int m_AnimationHash; - - public ConditionAnimAtEnd(Animator animator, int animationHash) - : base() - { - m_Animator = animator; - m_AnimationHash = animationHash; - } - - public override bool Evaluate() - { - AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); - if(info.shortNameHash == m_AnimationHash) - { - float t = info.normalizedTime; - if (t >= 0.99f) - return true; - } - return false; - } -} diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs.meta deleted file mode 100644 index 1688dd68..00000000 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f5cbdf2ebe12b5d46afa21a62609d15c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs deleted file mode 100644 index 282ef929..00000000 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class ConditionAnimFrameRange : 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/Conditions/ConditionAnimFrameRange.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs.meta deleted file mode 100644 index 3fc88fb1..00000000 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 28e7aa2c7b5a9d74b936ec5731eeec36 -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 deleted file mode 100644 index b8f98065..00000000 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -/// -/// 某个动画是否播放到了某个时间(归一化了的)范围内 -/// -public sealed class ConditionAnimRange : ConditionBase -{ - Vector2 m_TimeRange = new Vector2(); - Animator m_Animator; - - public ConditionAnimRange(Animator animator, float start, float end) - { - m_Animator = animator; - - m_TimeRange.Set(start, end); - } - - public override bool Evaluate() - { - AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); - float time = info.normalizedTime; - bool result = time >= m_TimeRange.x && time <= m_TimeRange.y; - return result; - } - -} diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs.meta deleted file mode 100644 index 926a8560..00000000 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 56b6b5bfaf0d4e147a2f0f1809e7739b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionCombo.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionCombo.cs index 7664a891..1b6159cb 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionCombo.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionCombo.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using UnityEngine; /// -/// 连击操作,综合ConditionAnimRange和ConditionCommand +/// 连击操作,综合ConditionMotionRange和ConditionCommand /// public class ConditionCombo : ConditionBase { diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionInair.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionInair.cs index 80bae491..2c631970 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionInair.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionInair.cs @@ -7,8 +7,15 @@ using UnityEngine; /// public class ConditionInAir : ConditionBase { + PhysicsPrimitive m_Prim; + + public ConditionInAir(PhysicsPrimitive prim) + { + m_Prim = prim; + } + public override bool Evaluate() { - return false; + return m_Prim.Bound.w > PhysicsWorld.Ground; } } diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs new file mode 100644 index 00000000..18d71e86 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 动画已经播放完毕 +/// +public class ConditionMotionAtEnd : ConditionBase +{ + Animator m_Animator; + int m_AnimationHash; + + public ConditionMotionAtEnd(Animator animator, int animationHash) + : base() + { + m_Animator = animator; + m_AnimationHash = animationHash; + } + + public override bool Evaluate() + { + AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); + if(info.shortNameHash == m_AnimationHash) + { + float t = info.normalizedTime; + if (t >= 0.99f) + return true; + } + return false; + } +} diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs.meta new file mode 100644 index 00000000..1688dd68 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5cbdf2ebe12b5d46afa21a62609d15c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs new file mode 100644 index 00000000..282ef929 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionAnimFrameRange : 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/Conditions/ConditionMotionFrameRange.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs.meta new file mode 100644 index 00000000..3fc88fb1 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28e7aa2c7b5a9d74b936ec5731eeec36 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs new file mode 100644 index 00000000..c902ae26 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 某个动画是否播放到了某个时间(归一化了的)范围内 +/// +public sealed class ConditionMotionRange : ConditionBase +{ + Vector2 m_TimeRange = new Vector2(); + Animator m_Animator; + + public ConditionMotionRange(Animator animator, float start, float end) + { + m_Animator = animator; + + m_TimeRange.Set(start, end); + } + + public override bool Evaluate() + { + AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); + float time = info.normalizedTime; + bool result = time >= m_TimeRange.x && time <= m_TimeRange.y; + return result; + } + +} diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs.meta new file mode 100644 index 00000000..926a8560 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 56b6b5bfaf0d4e147a2f0f1809e7739b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0