diff options
author | chai <chaifix@163.com> | 2020-10-14 22:05:02 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-14 22:05:02 +0800 |
commit | 0d221e6c05d59d812d494f05b9916d85650032eb (patch) | |
tree | 8d8274e25f956e26b7d5be9f29c620bae721307a /Assets/Scripts | |
parent | 11a29ca87429b2b8005777463d3c98fd376e4a24 (diff) |
+action
Diffstat (limited to 'Assets/Scripts')
20 files changed, 260 insertions, 22 deletions
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 /// </summary>
private List<AbilityTrigger> 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; + +/// <summary> +/// 每个角色拥有一个ablity system +/// </summary> +public class AbilitySystem +{ + /// <summary> + /// 当前执行的ability + /// </summary> + private AbilityBase m_Currrent; + + public AbilityBase Current + { + get + { + return m_Currrent; + } + } + + private List<AbilityBase> 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 /// <summary>
-/// 两个condition都达成才会返回真
+/// 多个condition都达成才会返回真
/// </summary>
public sealed class ConditionMultiAnd : ConditionBase
{
@@ -128,7 +128,7 @@ public sealed class ConditionMultiAnd : ConditionBase }
/// <summary>
-/// 两个condition至少一个达成才会返回真
+/// 多个condition至少一个达成才会返回真
/// </summary>
public sealed class ConditionMultiOr : ConditionBase
{
@@ -152,7 +152,7 @@ public sealed class ConditionMultiOr : ConditionBase }
/// <summary>
-/// 两个condition都不达成才会返回真
+/// 多个condition都不达成才会返回真
/// </summary>
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
{
- /// <summary>
- /// 当前的ability
- /// </summary>
- AbilityBase m_CurrentAblity;
+ /// <summary>
+ /// ability system
+ /// </summary>
+ AbilitySystem m_AbilitySystem = new AbilitySystem();
/// <summary>
/// 设置abilities
/// </summary>
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: |