using UnityEngine; namespace uNature.Core { public static class UNPhysics { private static UNPhysicsObject currentPObject; private static RaycastHit rayHit; private static Ray ray; public static UNPhysicsHitsArray RaycastAll(Vector3 origin, Vector3 direction, float distance, int mask, float offset) { return null; } public static UNPhysicsHitsArray RaycastAll(Ray ray, float distance, int mask) { return RaycastAll(ray.origin, ray.direction, distance, mask, 0f); } public static UNPhysicsHitsArray RaycastAll(Ray ray, float distance, int mask, float offset) { return RaycastAll(ray.origin, ray.direction, distance, mask, offset); } public static bool Raycast(Vector3 origin, Vector3 direction, out UNPhysicsHit_Grass hit, float distance, int mask, float offset) { UNPhysicsHitsArray uNPhysicsHitsArray = RaycastAll(origin, direction, distance, mask, offset); hit = default(UNPhysicsHit_Grass); if (uNPhysicsHitsArray.Count <= 0) { return false; } uNPhysicsHitsArray.Sort(); hit = uNPhysicsHitsArray[0]; return true; } public static bool Raycast(Vector3 origin, Vector3 direction, out UNPhysicsHit_Grass hit, float distance, int mask) { UNPhysicsHitsArray uNPhysicsHitsArray = RaycastAll(origin, direction, distance, mask, 0f); hit = default(UNPhysicsHit_Grass); if (uNPhysicsHitsArray.Count <= 0) { return false; } uNPhysicsHitsArray.Sort(); hit = uNPhysicsHitsArray[0]; return true; } public static bool Raycast(Vector3 origin, Vector3 direction, out UNPhysicsHit_Grass hit, float distance) { return Raycast(origin, direction, out hit, distance, -1); } public static bool Raycast(Ray ray, out UNPhysicsHit_Grass hit, float distance, bool TakeUnityPhysicsIntoAccount, Transform target) { return Raycast(ray.origin, ray.direction, out hit, distance, -1); } public static bool Raycast(Ray ray, out UNPhysicsHit_Grass hit, float distance, int mask) { return Raycast(ray.origin, ray.direction, out hit, distance, mask); } } }