public static bool Cast(IPhysicsGeom geom, Vector3 dir, float dist, int layerMask) { if (geom == null) throw new System.ArgumentNullException("geom"); RaycastHit hit; return geom.Cast(dir, out hit, dist, layerMask); }
public static bool Cast(IPhysicsGeom geom, Vector3 dir) { if (geom == null) throw new System.ArgumentNullException("geom"); RaycastHit hit; return geom.Cast(dir, out hit, float.PositiveInfinity, Physics.AllLayers); }
public static bool Cast(IPhysicsGeom geom, Vector3 dir, out RaycastHit hitInfo, float dist, QueryTriggerInteraction query = QueryTriggerInteraction.UseGlobal) { if (geom == null) throw new System.ArgumentNullException("geom"); return geom.Cast(dir, out hitInfo, dist, Physics.AllLayers, query); }
public static int OverlapGeom(IPhysicsGeom geom, IList<Collider> results, int layerMask = Physics.AllLayers, QueryTriggerInteraction query = QueryTriggerInteraction.UseGlobal) { if (geom == null) throw new System.ArgumentNullException("geom"); return geom.Overlap(results, layerMask, query); }
public static bool RadialCast(IPhysicsGeom geom, ICollection <RaycastHit> results, float dist, int detail, int layerMask, QueryTriggerInteraction query = QueryTriggerInteraction.UseGlobal) { return(RadialCast(geom, results, dist, detail, layerMask, Vector2.right, query)); }
public static RaycastHit[] RadialCast(IPhysicsGeom geom, float dist, int detail, int layerMask, QueryTriggerInteraction query = QueryTriggerInteraction.UseGlobal) { return(RadialCast(geom, dist, detail, layerMask, Vector2.right, query)); }
public static bool CheckGeom(IPhysicsGeom geom) { if (geom == null) throw new System.ArgumentNullException("geom"); if (geom is Sphere) { var s = (Sphere)geom; return Physics.CheckSphere(s.Center, s.Radius); } else if (geom is Capsule) { var c = (Capsule)geom; return Physics.CheckCapsule(c.Start, c.End, c.Radius); } else { return geom.TestOverlap(Physics.AllLayers); } }
public static RaycastHit[] CastAll(IPhysicsGeom geom, Vector3 dir, float dist, int layerMask) { if (geom == null) throw new System.ArgumentNullException("geom"); return geom.CastAll(dir, dist, layerMask).ToArray(); }
public static RaycastHit[] CastAll(IPhysicsGeom geom, Vector3 dir) { if (geom == null) throw new System.ArgumentNullException("geom"); return geom.CastAll(dir, float.PositiveInfinity, Physics.AllLayers).ToArray(); }
public static bool Cast(IPhysicsGeom geom, Vector3 dir, out RaycastHit hitInfo, float dist) { if (geom == null) throw new System.ArgumentNullException("geom"); return geom.Cast(dir, out hitInfo, dist, Physics.AllLayers); }
public static IEnumerable<RaycastHit> RadialCast(IPhysicsGeom geom, float dist, int detail, int layerMask, Vector2 initialAxis) { if (VectorUtil.NearZeroVector(initialAxis)) initialAxis = Vector2.right; else initialAxis.Normalize(); var a = 360f / (float)detail; for (int i = 0; i < detail; i++) { var v = VectorUtil.RotateBy(initialAxis, a * i); foreach (var h in geom.CastAll(v, dist, layerMask)) { yield return h; } } }
public static IEnumerable<RaycastHit> RadialCast(IPhysicsGeom geom, float dist, int detail, int layerMask) { return RadialCast(geom, dist, detail, layerMask, Vector2.right); }
public static Collider[] OverlapGeom(IPhysicsGeom geom, int layerMask) { if (geom == null) throw new System.ArgumentNullException("geom"); return geom.Overlap(layerMask).ToArray(); }