summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Physics/PhysicsPrimitive.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Physics/PhysicsPrimitive.cs')
-rw-r--r--Assets/Scripts/Physics/PhysicsPrimitive.cs28
1 files changed, 21 insertions, 7 deletions
diff --git a/Assets/Scripts/Physics/PhysicsPrimitive.cs b/Assets/Scripts/Physics/PhysicsPrimitive.cs
index 59c56aaf..f52fb9e9 100644
--- a/Assets/Scripts/Physics/PhysicsPrimitive.cs
+++ b/Assets/Scripts/Physics/PhysicsPrimitive.cs
@@ -30,15 +30,15 @@ public abstract class PhysicsPrimitive : MonoBehaviour
{
get
{
- return transform.TransformPoint(m_Center);
+ Vector3 euler = Quaternion.ToEulerAngles(transform.rotation);
+ euler.y = Mathf.Rad2Deg * euler.y;
+ Vector3 res = m_Center;
+ res.x = (euler.y > 90 && euler.y <= 180) ? -res.x : res.x;
+ res = transform.position + res;
+ return res;
}
}
- /// <summary>
- /// 中心点在本地空间的位置
- /// </summary>
- public Vector3 m_Center;
-
[SerializeField]
/// <summary>
/// 这个primitive是否参与物理计算,用来快速给物体取消和恢复重力影响
@@ -124,6 +124,7 @@ public abstract class PhysicsPrimitive : MonoBehaviour
protected void OnInit()
{
m_ID = UIDManager.Acquire();
+ PhysicsWorld.Instance.AddPrimitive(this);
}
protected Color Color_Green = new Color(0,1, 0, 0.5f);
@@ -133,6 +134,19 @@ public abstract class PhysicsPrimitive : MonoBehaviour
[Tooltip("Physics body, leave blank and primitive will be static.")]
[SerializeField]
- protected PhysicsBody m_Body;
+ protected PhysicsBody m_Body;
+
+ public PhysicsBody Body
+ {
+ get
+ {
+ return m_Body;
+ }
+ }
+
+ /// <summary>
+ /// 中心点在本地空间的位置
+ /// </summary>
+ public Vector3 m_Center;
} \ No newline at end of file