summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Physics/PhysicsHelper.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-16 08:09:25 +0800
committerchai <chaifix@163.com>2020-10-16 08:09:25 +0800
commit68f3823ddb10110c2abafb5f1aab2f3e6f3fa360 (patch)
tree3c58f81b652d7e9457082c671182a82d33a4562b /Assets/Scripts/Physics/PhysicsHelper.cs
parentdaab961407a24e1c4cd295d496e1bf809469f73a (diff)
* ability system
* physics system
Diffstat (limited to 'Assets/Scripts/Physics/PhysicsHelper.cs')
-rw-r--r--Assets/Scripts/Physics/PhysicsHelper.cs46
1 files changed, 45 insertions, 1 deletions
diff --git a/Assets/Scripts/Physics/PhysicsHelper.cs b/Assets/Scripts/Physics/PhysicsHelper.cs
index 94916bfc..aa31108e 100644
--- a/Assets/Scripts/Physics/PhysicsHelper.cs
+++ b/Assets/Scripts/Physics/PhysicsHelper.cs
@@ -2,12 +2,23 @@
using System.Collections.Generic;
using UnityEngine;
+enum CollisionType
+{
+ BallvsBall = 1,
+ BallvsBox,
+ BoxvsBox
+}
+
+
/// <summary>
/// 碰撞的信息
/// </summary>
public class PhysicsCollisionInfo
{
-
+ CollisionType type;
+ PhysicsPrimitive prim1;
+ PhysicsPrimitive prim2;
+ Vector3 contacts;
}
public sealed class PhysicsHelper
@@ -34,6 +45,39 @@ public sealed class PhysicsHelper
return true;
}
+ public static bool BallvsRay(PhysicsBall ball, Vector3 ray)
+ {
+ return false;
+ }
+
+ public static bool BoxvsRay(PhysicsBox box, Vector3 ray)
+ {
+ return false;
+ }
+
+ public static bool RayvsRay(Vector3 ray1, Vector3 ray2)
+ {
+ return false;
+ }
+
+ public static bool PrimvsPrim(PhysicsPrimitive prim1, PhysicsPrimitive prim2, out PhysicsCollisionInfo info)
+ {
+ if(prim1.Type == PrimitiveType.Ball)
+ {
+ if (prim2.Type == PrimitiveType.Ball)
+ return BallvsBall2D(prim1 as PhysicsBall, prim2 as PhysicsBall, out info);
+ else
+ return BallvsBox2D(prim1 as PhysicsBall, prim2 as PhysicsBox, out info);
+ }
+ else
+ {
+ if (prim2.Type == PrimitiveType.Ball)
+ return BallvsBox2D(prim2 as PhysicsBall, prim1 as PhysicsBox, out info);
+ else
+ return BoxvsBox2D(prim1 as PhysicsBox, prim2 as PhysicsBox, out info);
+ }
+ }
+
#endregion
public static bool BallvsBall(PhysicsBall ball1, PhysicsBall ball2, out PhysicsCollisionInfo info)