# SphereCastAll

> Like Physics.SphereCast, but this function will return all hits the sphere sweep intersects.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.PhysicsModule

## SphereCastAll(Vector3, float, Vector3, float, int, QueryTriggerInteraction)

Like [Physics.SphereCast](/engine/6000.5/script-reference/unityengine/physics/spherecast.md), but this function will return all hits the sphere sweep intersects.

```csharp
public static RaycastHit[] SphereCastAll(Vector3 origin, float radius, Vector3 direction, float maxDistance, int layerMask, QueryTriggerInteraction queryTriggerInteraction)
```

### Parameters

**** (\[Vector3]\(/engine/6000.5/script-reference/unityengine/vector3)): The center of the sphere at the start of the sweep.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The radius of the sphere.**** (\[Vector3]\(/engine/6000.5/script-reference/unityengine/vector3)): The direction in which to sweep the sphere.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The max length of the sweep.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): A [Layer mask](/engine/6000.5/manual/working-with-gameobjects/layers.md) that is used to selectively filter which colliders are considered when casting a sphere.**** (\[QueryTriggerInteraction]\(/engine/6000.5/script-reference/unityengine/querytriggerinteraction)): Specifies whether this query should hit Triggers.

### Returns

| Type                                                                        | Description                                 |
| --------------------------------------------------------------------------- | ------------------------------------------- |
| [RaycastHit\[\]](/engine/6000.5/script-reference/unityengine/raycasthit.md) | An array of all colliders hit in the sweep. |

### Remarks

Casts a sphere against all colliders in the Scene and returns detailed information on each collider which was hit. This is useful when a Raycast does not give enough precision, because you want to find out if an object of a specific size, such as a character, will be able to move somewhere without colliding with anything on the way.

**Notes:** For colliders that overlap the sphere at the start of the sweep,  [RaycastHit.normal](/engine/6000.5/script-reference/unityengine/raycasthit/normal.md) is set opposite to the direction of the sweep, [RaycastHit.distance](/engine/6000.5/script-reference/unityengine/raycasthit/distance.md) is set to zero, and the zero vector gets returned in [RaycastHit.point](/engine/6000.5/script-reference/unityengine/raycasthit/point.md). You might want to check whether this is the case in your particular query and perform additional queries to refine the result. Passing a zero radius results in undefined output and doesn't always behave the same as [Physics.Raycast](/engine/6000.5/script-reference/unityengine/physics/raycast.md).

Additional Resources: [Physics.SphereCast](/engine/6000.5/script-reference/unityengine/physics/spherecast.md), [Physics.CapsuleCast](/engine/6000.5/script-reference/unityengine/physics/capsulecast.md), [Physics.Raycast](/engine/6000.5/script-reference/unityengine/physics/raycast.md), [Rigidbody.SweepTest](/engine/6000.5/script-reference/unityengine/rigidbody/sweeptest.md).

## SphereCastAll(Ray, float, float, int, QueryTriggerInteraction)

Like [Physics.SphereCast](/engine/6000.5/script-reference/unityengine/physics/spherecast.md), but this function will return all hits the sphere sweep intersects.

```csharp
public static RaycastHit[] SphereCastAll(Ray ray, float radius, float maxDistance, int layerMask, QueryTriggerInteraction queryTriggerInteraction)
```

### Parameters

**** (\[Ray]\(/engine/6000.5/script-reference/unityengine/ray)): The starting point and direction of the ray into which the sphere sweep is cast.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The radius of the sphere.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The max length of the sweep.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): A [Layer mask](/engine/6000.5/manual/working-with-gameobjects/layers.md) that is used to selectively filter which colliders are considered when casting a sphere.**** (\[QueryTriggerInteraction]\(/engine/6000.5/script-reference/unityengine/querytriggerinteraction)): Specifies whether this query should hit Triggers.

### Returns

| Type                                                                        | Description |
| --------------------------------------------------------------------------- | ----------- |
| [RaycastHit\[\]](/engine/6000.5/script-reference/unityengine/raycasthit.md) |             |
