From f049177e20a276049c61edbad631c1b2bbdd5706 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 15 Oct 2020 19:05:22 +0800 Subject: -advanced inspector +odin --- Assets/Scripts/Physics/PhysicsPrimitive.cs | 46 ++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 12 deletions(-) (limited to 'Assets/Scripts/Physics/PhysicsPrimitive.cs') diff --git a/Assets/Scripts/Physics/PhysicsPrimitive.cs b/Assets/Scripts/Physics/PhysicsPrimitive.cs index 0d285fd3..99549db3 100644 --- a/Assets/Scripts/Physics/PhysicsPrimitive.cs +++ b/Assets/Scripts/Physics/PhysicsPrimitive.cs @@ -2,34 +2,53 @@ using System.Collections.Generic; using UnityEngine; +public enum PrimitiveType +{ + None, + Ball, + Box +} + /// /// 物理碰撞体基类 -/// 只需要Box和Ball两种 +/// 对于格斗游戏来说只需要Box和Ball两种 /// public abstract class PhysicsPrimitive : MonoBehaviour { - [SerializeField] + public virtual PrimitiveType Type + { + get + { + return PrimitiveType.None; + } + } + /// - /// 这个primitive是否参与物理计算,用来快速给物体取消和恢复重力影响 + /// 世界坐标,物理模拟是在世界空间,本地坐标没有意义 /// - protected bool m_IsActive; - public bool IsActive + public Vector3 Position { get { - return m_IsActive; + return transform.TransformPoint(m_Center); } } /// - /// 这个primitive所属的物体 + /// 中心点在本地空间的位置 /// - protected Transform m_Parent; - public Transform Parent + public Vector3 m_Center; + + [SerializeField] + /// + /// 这个primitive是否参与物理计算,用来快速给物体取消和恢复重力影响 + /// + protected bool m_IsActive; + public bool IsActive { get { - return m_Parent; + return m_IsActive; } } @@ -65,7 +84,6 @@ public abstract class PhysicsPrimitive : MonoBehaviour } } - [SerializeField] protected string m_Title; public string Title @@ -92,11 +110,15 @@ public abstract class PhysicsPrimitive : MonoBehaviour protected void OnInit() { m_ID = UIDManager.Acquire(); - m_Parent = transform; } protected Color Color_Green = new Color(0,1, 0, 0.5f); [SerializeField] protected Color m_HintColor = new Color(0, 0, 0, 0.5f); + + [Tooltip("Physics body, leave blank and primitive will be static.")] + [SerializeField] + protected PhysicsBody m_Body; + } \ No newline at end of file -- cgit v1.1-26-g67d0