summaryrefslogtreecommitdiff
path: root/Assets/Scripts
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-14 22:05:02 +0800
committerchai <chaifix@163.com>2020-10-14 22:05:02 +0800
commit0d221e6c05d59d812d494f05b9916d85650032eb (patch)
tree8d8274e25f956e26b7d5be9f29c620bae721307a /Assets/Scripts
parent11a29ca87429b2b8005777463d3c98fd376e4a24 (diff)
+action
Diffstat (limited to 'Assets/Scripts')
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs16
-rw-r--r--Assets/Scripts/AbilitySystem/AbilitySystem.cs45
-rw-r--r--Assets/Scripts/AbilitySystem/AbilitySystem.cs.meta11
-rw-r--r--Assets/Scripts/AbilitySystem/Actions.meta8
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionBase.cs18
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionBase.cs.meta11
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs18
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionCrossFade.cs.meta11
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs18
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionFreze.cs.meta11
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs18
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionPlaySfx.cs.meta11
-rw-r--r--Assets/Scripts/AbilitySystem/Conditions/ConditionAnimRange.cs8
-rw-r--r--Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs6
-rw-r--r--Assets/Scripts/AbilitySystem/Triggers/AbilityTrigger.cs1
-rw-r--r--Assets/Scripts/Physics/PhysicsBody.cs15
-rw-r--r--Assets/Scripts/Test/SaionjiScript.cs2
-rw-r--r--Assets/Scripts/Test/SaionjiScript_Ability.cs15
-rw-r--r--Assets/Scripts/Test/SaionjiScript_Anim.cs28
-rw-r--r--Assets/Scripts/Test/SaionjiScript_Anim.cs.meta11
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: