summaryrefslogtreecommitdiff
path: root/Assets/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts')
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs4
-rw-r--r--Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs72
-rw-r--r--Assets/Scripts/Physics/Box.cs18
-rw-r--r--Assets/Scripts/Physics/HitBox.cs12
-rw-r--r--Assets/Scripts/Physics/PhysicsBall.cs20
-rw-r--r--Assets/Scripts/Physics/PhysicsBall.cs.meta (renamed from Assets/Scripts/Physics/PhysicsUtils.cs.meta)2
-rw-r--r--Assets/Scripts/Physics/PhysicsBody.cs43
-rw-r--r--Assets/Scripts/Physics/PhysicsBody.cs.meta11
-rw-r--r--Assets/Scripts/Physics/PhysicsBox.cs32
-rw-r--r--Assets/Scripts/Physics/PhysicsBox.cs.meta (renamed from Assets/Scripts/Physics/Box.cs.meta)0
-rw-r--r--Assets/Scripts/Physics/PhysicsHelper.cs54
-rw-r--r--Assets/Scripts/Physics/PhysicsHelper.cs.meta11
-rw-r--r--Assets/Scripts/Physics/PhysicsPrimitive.cs98
-rw-r--r--Assets/Scripts/Physics/PhysicsPrimitive.cs.meta11
-rw-r--r--Assets/Scripts/Physics/PhysicsUtils.cs18
-rw-r--r--Assets/Scripts/Physics/PhysicsWorld.cs36
-rw-r--r--Assets/Scripts/Utils/Singleton.cs20
-rw-r--r--Assets/Scripts/Utils/Singleton.cs.meta11
18 files changed, 414 insertions, 59 deletions
diff --git a/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs
index b2d7356b..a2057900 100644
--- a/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs
+++ b/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs
@@ -45,9 +45,9 @@ public class MoveAbility : AbilityBase
public override void OnUpdate()
{
- foreach (var trigger in m_AbilityTriggers)
+ foreach (var abilityTrigger in m_AbilityTriggers)
{
- if (trigger.Update())
+ if (abilityTrigger.Update())
break;
}
}
diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs
index c14624ad..e63bedb0 100644
--- a/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs
+++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs
@@ -103,3 +103,75 @@ public sealed class ConditionNone : ConditionBase
}
+/// <summary>
+/// 两个condition都达成才会返回真
+/// </summary>
+public sealed class ConditionMultiAnd : ConditionBase
+{
+ List<ConditionBase> m_Conditions;
+
+ public ConditionMultiAnd(List<ConditionBase> conditions)
+ : base()
+ {
+ m_Conditions.AddRange(conditions);
+ }
+
+ public override bool Evaluate()
+ {
+ foreach(var condition in m_Conditions)
+ {
+ if(!condition.Evaluate())
+ return false;
+ }
+ return true;
+ }
+}
+
+/// <summary>
+/// 两个condition至少一个达成才会返回真
+/// </summary>
+public sealed class ConditionMultiOr : ConditionBase
+{
+ List<ConditionBase> m_Conditions;
+
+ public ConditionMultiOr(List<ConditionBase> conditions)
+ : base()
+ {
+ m_Conditions.AddRange(conditions);
+ }
+
+ public override bool Evaluate()
+ {
+ foreach (var condition in m_Conditions)
+ {
+ if (condition.Evaluate())
+ return true;
+ }
+ return false;
+ }
+}
+
+/// <summary>
+/// 两个condition都不达成才会返回真
+/// </summary>
+public sealed class ConditionMultiNone : ConditionBase
+{
+ List<ConditionBase> m_Conditions;
+
+ public ConditionMultiNone(List<ConditionBase> conditions)
+ : base()
+ {
+ m_Conditions.AddRange(conditions);
+ }
+
+ public override bool Evaluate()
+ {
+ foreach (var condition in m_Conditions)
+ {
+ if (condition.Evaluate())
+ return false;
+ }
+ return true;
+ }
+}
+
diff --git a/Assets/Scripts/Physics/Box.cs b/Assets/Scripts/Physics/Box.cs
deleted file mode 100644
index 1f022f51..00000000
--- a/Assets/Scripts/Physics/Box.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class NewBehaviourScript : MonoBehaviour
-{
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
-}
diff --git a/Assets/Scripts/Physics/HitBox.cs b/Assets/Scripts/Physics/HitBox.cs
index 09e1f90a..a6337abd 100644
--- a/Assets/Scripts/Physics/HitBox.cs
+++ b/Assets/Scripts/Physics/HitBox.cs
@@ -2,17 +2,7 @@
using System.Collections.Generic;
using UnityEngine;
-public class AttackBox : MonoBehaviour
+public class HitBox : PhysicsBox
{
- // Start is called before the first frame update
- void Start()
- {
-
- }
- // Update is called once per frame
- void Update()
- {
-
- }
}
diff --git a/Assets/Scripts/Physics/PhysicsBall.cs b/Assets/Scripts/Physics/PhysicsBall.cs
new file mode 100644
index 00000000..2a076718
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsBall.cs
@@ -0,0 +1,20 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class PhysicsBall : PhysicsPrimitive
+{
+ public Vector3 m_Center;
+ public float m_Radius;
+
+ public void OnDrawGizmos()
+ {
+ Gizmos.DrawSphere(m_Center, m_Radius);
+ }
+
+ void Start()
+ {
+ base.OnInit();
+ }
+
+}
diff --git a/Assets/Scripts/Physics/PhysicsUtils.cs.meta b/Assets/Scripts/Physics/PhysicsBall.cs.meta
index b47b63fc..39ba3e3f 100644
--- a/Assets/Scripts/Physics/PhysicsUtils.cs.meta
+++ b/Assets/Scripts/Physics/PhysicsBall.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d859c78cbe7a7db4881bfd4d0274a16e
+guid: 04071fd85519f204fb0d0dc080c41bae
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/Scripts/Physics/PhysicsBody.cs b/Assets/Scripts/Physics/PhysicsBody.cs
new file mode 100644
index 00000000..812b77b7
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsBody.cs
@@ -0,0 +1,43 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 刚体
+/// </summary>
+public sealed class PhysicsBody : MonoBehaviour
+{
+
+ [SerializeField]
+ private Vector3 m_Velocity;
+ public Vector3 Velocity
+ {
+ get
+ {
+ return m_Velocity;
+ }
+ }
+
+ [SerializeField]
+ private float m_Weight;
+ public float Weight
+ {
+ get
+ {
+ return m_Weight;
+ }
+ }
+
+ [SerializeField]
+ private Vector3 m_Accelaration;
+ public Vector3 Accelaration
+ {
+ get
+ {
+ return m_Accelaration;
+ }
+ }
+
+
+
+}
diff --git a/Assets/Scripts/Physics/PhysicsBody.cs.meta b/Assets/Scripts/Physics/PhysicsBody.cs.meta
new file mode 100644
index 00000000..a80b9d50
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsBody.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cd65b198d10c5b441b5c40b05c8f3d41
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Physics/PhysicsBox.cs b/Assets/Scripts/Physics/PhysicsBox.cs
new file mode 100644
index 00000000..93f2a45f
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsBox.cs
@@ -0,0 +1,32 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class PhysicsBox : PhysicsPrimitive
+{
+ /// <summary>
+ /// 中心点
+ /// </summary>
+ public Vector3 m_Center;
+
+ /// <summary>
+ /// 长宽高
+ /// </summary>
+ public Vector3 m_Size;
+
+ public float Long { get { return m_Size.x; } }
+ public float Wide { get { return m_Size.y; } }
+ public float Height { get { return m_Size.z; } }
+
+ public void OnDrawGizmos()
+ {
+ Vector3 pos = m_Center + transform.position;
+ Gizmos.DrawCube(pos, m_Size);
+ }
+
+ private void Start()
+ {
+ base.OnInit();
+ }
+
+}
diff --git a/Assets/Scripts/Physics/Box.cs.meta b/Assets/Scripts/Physics/PhysicsBox.cs.meta
index 528c7474..528c7474 100644
--- a/Assets/Scripts/Physics/Box.cs.meta
+++ b/Assets/Scripts/Physics/PhysicsBox.cs.meta
diff --git a/Assets/Scripts/Physics/PhysicsHelper.cs b/Assets/Scripts/Physics/PhysicsHelper.cs
new file mode 100644
index 00000000..27d04051
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsHelper.cs
@@ -0,0 +1,54 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 碰撞的信息
+/// </summary>
+public class PhysicsCollisionInfo
+{
+
+}
+
+public sealed class PhysicsHelper
+{
+
+ public static bool BallvsBall(PhysicsBall ball1, PhysicsBall ball2, out PhysicsCollisionInfo info)
+ {
+ info = null;
+ return true;
+ }
+
+ public static bool BoxvsBox(PhysicsBox box1, PhysicsBox box2, out PhysicsCollisionInfo info)
+ {
+ info = null;
+ return true;
+ }
+
+ public static bool BallvsBox(PhysicsBall ball, PhysicsBox box, out PhysicsCollisionInfo info)
+ {
+ info = null;
+ return true;
+ }
+
+ #region 简略版的2D检测,忽略z轴
+
+ public static bool BallvsBall2D(PhysicsBall ball1, PhysicsBall ball2, out PhysicsCollisionInfo info)
+ {
+ info = null;
+ return true;
+ }
+
+ public static bool BoxvsBox2D(PhysicsBox box1, PhysicsBox box2, out PhysicsCollisionInfo info)
+ {
+ info = null;
+ return true;
+ }
+
+ public static bool BallvsBox2D(PhysicsBall ball, PhysicsBox box, out PhysicsCollisionInfo info)
+ {
+ info = null;
+ return true;
+ }
+ #endregion
+}
diff --git a/Assets/Scripts/Physics/PhysicsHelper.cs.meta b/Assets/Scripts/Physics/PhysicsHelper.cs.meta
new file mode 100644
index 00000000..6259c4db
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsHelper.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5feab7ce586a9aa468329f97b89a69a3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Physics/PhysicsPrimitive.cs b/Assets/Scripts/Physics/PhysicsPrimitive.cs
new file mode 100644
index 00000000..b56467b2
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsPrimitive.cs
@@ -0,0 +1,98 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 物理碰撞体基类
+/// 只需要Box和Ball两种
+/// </summary>
+public abstract class PhysicsPrimitive : MonoBehaviour
+{
+ [SerializeField]
+ /// <summary>
+ /// 这个primitive是否参与物理计算,用来快速给物体取消和恢复重力影响
+ /// </summary>
+ protected bool m_IsActive;
+ public bool IsActive
+ {
+ get
+ {
+ return m_IsActive;
+ }
+ }
+
+ /// <summary>
+ /// 这个primitive所属的物体
+ /// </summary>
+ protected Transform m_Parent;
+ public Transform Parent
+ {
+ get
+ {
+ return m_Parent;
+ }
+ }
+
+ /// <summary>
+ /// 唯一ID
+ /// </summary>
+ protected int m_ID;
+ public int ID
+ {
+ get
+ {
+ return m_ID;
+ }
+ }
+
+ [SerializeField]
+ protected PhysicsGroup m_Group;
+ public PhysicsGroup Group
+ {
+ get
+ {
+ return m_Group;
+ }
+ }
+
+ [SerializeField]
+ protected PhysicsTag m_Tag;
+ public PhysicsTag Tag
+ {
+ get
+ {
+ return m_Tag;
+ }
+ }
+
+
+ [SerializeField]
+ protected string m_Title;
+ public string Title
+ {
+ get
+ {
+ return m_Title;
+ }
+ }
+
+ [SerializeField]
+ protected string m_Desc;
+ public string Desc
+ {
+ get
+ {
+ return m_Desc;
+ }
+ }
+
+ /// <summary>
+ /// 初始化,设置一些公共数据
+ /// </summary>
+ protected void OnInit()
+ {
+ m_ID = UIDManager.Acquire();
+ m_Parent = transform;
+ }
+
+} \ No newline at end of file
diff --git a/Assets/Scripts/Physics/PhysicsPrimitive.cs.meta b/Assets/Scripts/Physics/PhysicsPrimitive.cs.meta
new file mode 100644
index 00000000..725a8459
--- /dev/null
+++ b/Assets/Scripts/Physics/PhysicsPrimitive.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bf2b8ac8c3958a449891e20d634a76de
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Physics/PhysicsUtils.cs b/Assets/Scripts/Physics/PhysicsUtils.cs
deleted file mode 100644
index 752e15a5..00000000
--- a/Assets/Scripts/Physics/PhysicsUtils.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class PhysicsUtils : MonoBehaviour
-{
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
-}
diff --git a/Assets/Scripts/Physics/PhysicsWorld.cs b/Assets/Scripts/Physics/PhysicsWorld.cs
index 4ceb4a37..085716d1 100644
--- a/Assets/Scripts/Physics/PhysicsWorld.cs
+++ b/Assets/Scripts/Physics/PhysicsWorld.cs
@@ -2,17 +2,35 @@
using System.Collections.Generic;
using UnityEngine;
-public class PhysicsWorld : MonoBehaviour
+/// <summary>
+/// 标记
+/// </summary>
+public enum PhysicsTag
{
- // Start is called before the first frame update
- void Start()
- {
-
- }
+ Player,
+ Oponent,
+}
+
+/// <summary>
+/// 分类
+/// </summary>
+public enum PhysicsGroup
+{
+ Character,
+ Environment,
+ Props,
+}
+
+/// <summary>
+/// 适用于战斗的物理系统
+/// </summary>
+public class PhysicsWorld : Singleton<PhysicsWorld>
+{
+ private int m_UpdateRate = 60;
- // Update is called once per frame
- void Update()
+ public void Update()
{
-
+
}
+
}
diff --git a/Assets/Scripts/Utils/Singleton.cs b/Assets/Scripts/Utils/Singleton.cs
new file mode 100644
index 00000000..bdec31d3
--- /dev/null
+++ b/Assets/Scripts/Utils/Singleton.cs
@@ -0,0 +1,20 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+using System;
+
+public class Singleton<T> where T : class, new()
+{
+ private static T _instance;
+
+ public static T Instance
+ {
+ get
+ {
+ if (_instance == null)
+ _instance = Activator.CreateInstance<T>();
+ return _instance;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/Scripts/Utils/Singleton.cs.meta b/Assets/Scripts/Utils/Singleton.cs.meta
new file mode 100644
index 00000000..81c20c5a
--- /dev/null
+++ b/Assets/Scripts/Utils/Singleton.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 47d828939d4273d478d2b48fee027c75
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: