public static bool CalculateDistance <T>(ref T target, ColliderDistanceInput input, out DistanceHit result) where T : struct, IQueryable { var collector = new ClosestHitCollector <DistanceHit>(input.MaxDistance); if (target.CalculateDistance(input, ref collector)) { result = collector.ClosestHit; return(true); } result = new DistanceHit(); return(false); }
public static bool RayCast <T>(ref T target, RaycastInput input, out RaycastHit closestHit) where T : struct, IQueryable { var collector = new ClosestHitCollector <RaycastHit>(1.0f); if (target.CastRay(input, ref collector)) { closestHit = collector.ClosestHit; return(true); } closestHit = new RaycastHit(); return(false); }
public static bool ColliderCast <T>(ref T target, ColliderCastInput input, out ColliderCastHit result) where T : struct, IQueryable { var collector = new ClosestHitCollector <ColliderCastHit>(1.0f); if (target.CastCollider(input, ref collector)) { result = collector.ClosestHit; return(true); } result = new ColliderCastHit(); return(false); }
public static bool OverlapCollider <T>(ref T target, OverlapColliderInput input, out OverlapColliderHit closestHit) where T : struct, IQueryable { var collector = new ClosestHitCollector <OverlapColliderHit>(1.0f); if (target.OverlapCollider(input, ref collector)) { closestHit = collector.ClosestHit; return(true); } closestHit = new OverlapColliderHit(); return(false); }