From 68f3823ddb10110c2abafb5f1aab2f3e6f3fa360 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 16 Oct 2020 08:09:25 +0800 Subject: * ability system * physics system --- Assets/Scripts/Physics/PhysicsHelper.cs | 46 ++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'Assets/Scripts/Physics/PhysicsHelper.cs') 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 +} + + /// /// 碰撞的信息 /// 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) -- cgit v1.1-26-g67d0