/// <summary> /// Performs a CapsuleCastAll from a specified collider at an offset position in a direction. /// Returns an array of RaycastHit for all objects hit. /// </summary> /// <param name="collider">Collider to model CapsuleCastAll from.</param> /// <param name="offset">Offset position to apply to collider position for CapsuleCastAll.</param> /// <param name="direction">Direction of CapsuleCastAll.</param> /// <param name="layerMask">Layers to hit.</param> /// <param name="invertLayerMask">If true, invert layer mask. Otherwise, use layer mask as normal.</param> /// <returns>Array of everything CapsuleCastAll hit.</returns> public static RaycastHit[] CapsuleCastAll( CapsuleCollider collider, Vector3 offset, Vector3 direction, LayerMask layerMask, bool invertLayerMask = false ) { CalculateCapsuleCaps( collider, collider.transform.position + offset, collider.transform.rotation, out Vector3 capStart, out Vector3 capEnd ); return(UPhysics.CapsuleCastAll( capStart, capEnd, collider.radius, direction.normalized, direction.magnitude, invertLayerMask ? ~layerMask.value : layerMask.value )); }
public static RaycastHit[] SphereCastAll(Ray ray, float radius, [DefaultValue("Mathf.Infinity")] float maxDistance, [DefaultValue("DefaultRaycastLayers")] int layerMask) { return(Physics.CapsuleCastAll(ray.origin, ray.origin, radius, ray.direction, maxDistance, layerMask)); }