summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Physics
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-14 12:44:29 +0800
committerchai <chaifix@163.com>2020-10-14 12:44:29 +0800
commitdcaad8044384bce4f4358522108bf9a2481ee4e0 (patch)
treefb6cf33d05c66356b0c5d533e266aaa341210a3e /Assets/Scripts/Physics
parent4056f06baea18d3c5ae23c4a022fc6ae6b135bb2 (diff)
*physics
Diffstat (limited to 'Assets/Scripts/Physics')
-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
14 files changed, 309 insertions, 57 deletions
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()
{
-
+
}
+
}