From dcaad8044384bce4f4358522108bf9a2481ee4e0 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Oct 2020 12:44:29 +0800 Subject: *physics --- Assets/Scripts/Physics/Box.cs | 18 ----- Assets/Scripts/Physics/Box.cs.meta | 11 --- Assets/Scripts/Physics/HitBox.cs | 12 +-- Assets/Scripts/Physics/PhysicsBall.cs | 20 +++++ Assets/Scripts/Physics/PhysicsBall.cs.meta | 11 +++ Assets/Scripts/Physics/PhysicsBody.cs | 43 +++++++++++ Assets/Scripts/Physics/PhysicsBody.cs.meta | 11 +++ Assets/Scripts/Physics/PhysicsBox.cs | 32 ++++++++ Assets/Scripts/Physics/PhysicsBox.cs.meta | 11 +++ Assets/Scripts/Physics/PhysicsHelper.cs | 54 ++++++++++++++ Assets/Scripts/Physics/PhysicsHelper.cs.meta | 11 +++ Assets/Scripts/Physics/PhysicsPrimitive.cs | 98 +++++++++++++++++++++++++ Assets/Scripts/Physics/PhysicsPrimitive.cs.meta | 11 +++ Assets/Scripts/Physics/PhysicsUtils.cs | 18 ----- Assets/Scripts/Physics/PhysicsUtils.cs.meta | 11 --- Assets/Scripts/Physics/PhysicsWorld.cs | 36 ++++++--- 16 files changed, 330 insertions(+), 78 deletions(-) delete mode 100644 Assets/Scripts/Physics/Box.cs delete mode 100644 Assets/Scripts/Physics/Box.cs.meta create mode 100644 Assets/Scripts/Physics/PhysicsBall.cs create mode 100644 Assets/Scripts/Physics/PhysicsBall.cs.meta create mode 100644 Assets/Scripts/Physics/PhysicsBody.cs create mode 100644 Assets/Scripts/Physics/PhysicsBody.cs.meta create mode 100644 Assets/Scripts/Physics/PhysicsBox.cs create mode 100644 Assets/Scripts/Physics/PhysicsBox.cs.meta create mode 100644 Assets/Scripts/Physics/PhysicsHelper.cs create mode 100644 Assets/Scripts/Physics/PhysicsHelper.cs.meta create mode 100644 Assets/Scripts/Physics/PhysicsPrimitive.cs create mode 100644 Assets/Scripts/Physics/PhysicsPrimitive.cs.meta delete mode 100644 Assets/Scripts/Physics/PhysicsUtils.cs delete mode 100644 Assets/Scripts/Physics/PhysicsUtils.cs.meta (limited to 'Assets/Scripts/Physics') 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/Box.cs.meta b/Assets/Scripts/Physics/Box.cs.meta deleted file mode 100644 index 528c7474..00000000 --- a/Assets/Scripts/Physics/Box.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 637138a0ba30abc498c5c9dcf6bb5d78 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: 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/PhysicsBall.cs.meta b/Assets/Scripts/Physics/PhysicsBall.cs.meta new file mode 100644 index 00000000..39ba3e3f --- /dev/null +++ b/Assets/Scripts/Physics/PhysicsBall.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 04071fd85519f204fb0d0dc080c41bae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: 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; + +/// +/// 刚体 +/// +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 +{ + /// + /// 中心点 + /// + public Vector3 m_Center; + + /// + /// 长宽高 + /// + 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/PhysicsBox.cs.meta b/Assets/Scripts/Physics/PhysicsBox.cs.meta new file mode 100644 index 00000000..528c7474 --- /dev/null +++ b/Assets/Scripts/Physics/PhysicsBox.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 637138a0ba30abc498c5c9dcf6bb5d78 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: 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; + +/// +/// 碰撞的信息 +/// +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; + +/// +/// 物理碰撞体基类 +/// 只需要Box和Ball两种 +/// +public abstract class PhysicsPrimitive : MonoBehaviour +{ + [SerializeField] + /// + /// 这个primitive是否参与物理计算,用来快速给物体取消和恢复重力影响 + /// + protected bool m_IsActive; + public bool IsActive + { + get + { + return m_IsActive; + } + } + + /// + /// 这个primitive所属的物体 + /// + protected Transform m_Parent; + public Transform Parent + { + get + { + return m_Parent; + } + } + + /// + /// 唯一ID + /// + 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; + } + } + + /// + /// 初始化,设置一些公共数据 + /// + 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/PhysicsUtils.cs.meta b/Assets/Scripts/Physics/PhysicsUtils.cs.meta deleted file mode 100644 index b47b63fc..00000000 --- a/Assets/Scripts/Physics/PhysicsUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d859c78cbe7a7db4881bfd4d0274a16e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: 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 +/// +/// 标记 +/// +public enum PhysicsTag { - // Start is called before the first frame update - void Start() - { - - } + Player, + Oponent, +} + +/// +/// 分类 +/// +public enum PhysicsGroup +{ + Character, + Environment, + Props, +} + +/// +/// 适用于战斗的物理系统 +/// +public class PhysicsWorld : Singleton +{ + private int m_UpdateRate = 60; - // Update is called once per frame - void Update() + public void Update() { - + } + } -- cgit v1.1-26-g67d0