diff options
Diffstat (limited to 'Assets/Scripts/AbilitySystem')
34 files changed, 392 insertions, 95 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: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionPositionAdd.cs b/Assets/Scripts/AbilitySystem/Actions/ActionPositionAdd.cs new file mode 100644 index 00000000..9db10173 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionPositionAdd.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionPosAdd : 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/ActionPositionAdd.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionPositionAdd.cs.meta new file mode 100644 index 00000000..209f3795 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionPositionAdd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc9cfba8e327546488ec1c83add3e127 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionSetFeetPosition.cs b/Assets/Scripts/AbilitySystem/Actions/ActionSetFeetPosition.cs new file mode 100644 index 00000000..8869801d --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionSetFeetPosition.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionSetFeetPosition : 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/ActionSetFeetPosition.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionSetFeetPosition.cs.meta new file mode 100644 index 00000000..87656dc0 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionSetFeetPosition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da4e331f7a5282e4ca369384e69e98a4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionSetPosition.cs b/Assets/Scripts/AbilitySystem/Actions/ActionSetPosition.cs new file mode 100644 index 00000000..913eb3d2 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionSetPosition.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionSetPosition : 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/ActionSetPosition.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionSetPosition.cs.meta new file mode 100644 index 00000000..466f5692 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionSetPosition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6125833c9bb56f546bbd74cb0c7c32b3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionSetVelocity.cs b/Assets/Scripts/AbilitySystem/Actions/ActionSetVelocity.cs new file mode 100644 index 00000000..3289ac81 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionSetVelocity.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionSetVelocity : ActionBase +{ + PhysicsBody m_Body; + + Vector3 m_Velocity; + + public ActionSetVelocity(PhysicsBody body, Vector3 velocity) + { + m_Body = body; + m_Velocity = velocity; + } + + public override void Execute() + { + m_Body.Velocity = m_Velocity; + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionSetVelocity.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionSetVelocity.cs.meta new file mode 100644 index 00000000..3f677ed0 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionSetVelocity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0334529cb8b95d5449a4d50a41099c0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/CameraActions.meta b/Assets/Scripts/AbilitySystem/Actions/CameraActions.meta new file mode 100644 index 00000000..a4650ff8 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/CameraActions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d30a503b2bf1b04284baaadbf080a1f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionMoveCamera.cs b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionMoveCamera.cs new file mode 100644 index 00000000..e35d43ad --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionMoveCamera.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionMoveCamera : 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/CameraActions/ActionMoveCamera.cs.meta b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionMoveCamera.cs.meta new file mode 100644 index 00000000..3812e732 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionMoveCamera.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 67f15f0e55848fe4187e667a2e3e7d76 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionPauseTime.cs b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionPauseTime.cs new file mode 100644 index 00000000..5a22bc1e --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionPauseTime.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionPauseTime : 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/CameraActions/ActionPauseTime.cs.meta b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionPauseTime.cs.meta new file mode 100644 index 00000000..5cca5838 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/CameraActions/ActionPauseTime.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4f2e2377ca8624a4097987aa981db53d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects.meta b/Assets/Scripts/AbilitySystem/Actions/EffectActions.meta index 17a426dd..17a426dd 100644 --- a/Assets/Scripts/AbilitySystem/Actions/ActionEffects.meta +++ b/Assets/Scripts/AbilitySystem/Actions/EffectActions.meta diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionDisableGhost.cs index 2da01daf..2da01daf 100644 --- a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs +++ b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionDisableGhost.cs diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs.meta b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionDisableGhost.cs.meta index 185da50b..185da50b 100644 --- a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs.meta +++ b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionDisableGhost.cs.meta diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionEffectGhost.cs index 05d3a1a5..fa2d8e74 100644 --- a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs +++ b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionEffectGhost.cs @@ -1,19 +1,19 @@ -using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-// 残影特效
-public class ActionEffectGhost : ActionBase
-{
- CharacterGhostEffect m_GhostEffect;
-
- public ActionEffectGhost(CharacterGhostEffect effect)
- {
- m_GhostEffect = effect;
- }
-
- public override void Execute()
- {
- m_GhostEffect.IsEnable = true;
- }
-}
+using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 残影特效 +public class ActionEffectGhost : ActionBase +{ + CharacterGhostEffect m_GhostEffect; + + public ActionEffectGhost(CharacterGhostEffect effect) + { + m_GhostEffect = effect; + } + + public override void Execute() + { + m_GhostEffect.IsEnable = true; + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs.meta b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionEffectGhost.cs.meta index 6a55db7d..6a55db7d 100644 --- a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs.meta +++ b/Assets/Scripts/AbilitySystem/Actions/EffectActions/ActionEffectGhost.cs.meta diff --git a/Assets/Scripts/AbilitySystem/Actions/UberActions.meta b/Assets/Scripts/AbilitySystem/Actions/UberActions.meta new file mode 100644 index 00000000..c2620d0e --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/UberActions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74422fa2d75a19040b26845660f7b51b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/UberActions/ActionUber.cs b/Assets/Scripts/AbilitySystem/Actions/UberActions/ActionUber.cs new file mode 100644 index 00000000..b62d3b37 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/UberActions/ActionUber.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionUber : 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/UberActions/ActionUber.cs.meta b/Assets/Scripts/AbilitySystem/Actions/UberActions/ActionUber.cs.meta new file mode 100644 index 00000000..69d003aa --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/UberActions/ActionUber.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5986fb71b8f521d4c9bffe103916f1c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: 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/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;
/// <summary>
-/// 连击操作,综合ConditionAnimRange和ConditionCommand
+/// 连击操作,综合ConditionMotionRange和ConditionCommand
/// </summary>
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; /// </summary>
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/ConditionAnimAtEnd.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs index cfdcfab5..18d71e86 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs @@ -1,31 +1,31 @@ -using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-/// <summary>
-/// 动画已经播放完毕
-/// </summary>
-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;
- }
-}
+using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// <summary> +/// 动画已经播放完毕 +/// </summary> +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/ConditionAnimAtEnd.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs.meta index 1688dd68..1688dd68 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimAtEnd.cs.meta +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionAtEnd.cs.meta diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs index 282ef929..282ef929 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs.meta index 3fc88fb1..3fc88fb1 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimFrameRange.cs.meta +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionFrameRange.cs.meta diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs index b8f98065..c902ae26 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs @@ -1,28 +1,28 @@ -using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-/// <summary>
-/// 某个动画是否播放到了某个时间(归一化了的)范围内
-/// </summary>
-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;
- }
-
-}
+using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// <summary> +/// 某个动画是否播放到了某个时间(归一化了的)范围内 +/// </summary> +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/ConditionAnimRange.cs.meta b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs.meta index 926a8560..926a8560 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs.meta +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionMotionRange.cs.meta diff --git a/Assets/Scripts/AbilitySystem/Trigger.cs b/Assets/Scripts/AbilitySystem/Trigger.cs index dc173a6d..70a6d0f4 100644 --- a/Assets/Scripts/AbilitySystem/Trigger.cs +++ b/Assets/Scripts/AbilitySystem/Trigger.cs @@ -2,26 +2,46 @@ using System.Collections.Generic; using UnityEngine; +public enum TriggerOnlyOnce +{ + Off = 0, + On = 1, +} + +public enum TriggerSwallow +{ + Off = 0, + On = 1 +} + + /// <summary> /// 不同效果的trigger继承这个基类 /// </summary> public sealed class Trigger { - public bool Swallow; + private TriggerSwallow m_Swallow; + public bool Swallow + { + get + { + return m_Swallow == TriggerSwallow.On; + } + } private ConditionBase m_Condition; private List<ActionBase> m_ActionChain = new List<ActionBase>(); - public Trigger(ConditionBase condition, List<ActionBase> actions, bool onlyOnce = false, bool swallow = true) + public Trigger(ConditionBase condition, List<ActionBase> actions, TriggerOnlyOnce onlyOnce = TriggerOnlyOnce.Off, TriggerSwallow swallow = TriggerSwallow.On) { - Swallow = swallow; + m_Swallow = swallow; m_Condition = condition; m_ActionChain.AddRange(actions); } - public Trigger(ConditionBase condition, ActionBase action, bool onlyOnce = false, bool swallow = true) + public Trigger(ConditionBase condition, ActionBase action, TriggerOnlyOnce onlyOnce = TriggerOnlyOnce.Off, TriggerSwallow swallow = TriggerSwallow.On) { - Swallow = swallow; + m_Swallow = swallow; m_Condition = condition; m_ActionChain.Add(action); } |