# OverlapCircle

> Checks if a Collider falls within a circular area.

## Definition

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

## OverlapCircle(Vector2, float, int, float, float)

Checks if a Collider falls within a circular area.

```csharp
public static Collider2D OverlapCircle(Vector2 point, float radius, int layerMask, float minDepth, float maxDepth)
```

### Parameters

**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): Centre of the circle.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The radius of the circle.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Filter to check objects only on specific layers.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Only include objects with a Z coordinate (depth) greater than or equal to this value.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Only include objects with a Z coordinate (depth) less than or equal to this value.

### Returns

| Type                                                                    | Description                          |
| ----------------------------------------------------------------------- | ------------------------------------ |
| [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md) | The Collider overlapping the circle. |

### Remarks

The circle is defined by its centre coordinate in world space and by its radius. The optional *layerMask* allows the test to check only for objects on specific layers.

Although the Z axis is not relevant for rendering or collisions in 2D, you can use the *minDepth* and *maxDepth* parameters to filter objects based on their Z coordinate. If more than one Collider falls within the circle then the one returned will be the one with the lowest Z coordinate value. Null is returned if there are no Colliders in the circle. Additional Resources: [Physics2D.OverlapCircleAll](/engine/6000.6/script-reference/unityengine/physics2d/overlapcircleall.md), [Physics2D.OverlapCircle](/engine/6000.6/script-reference/unityengine/physics2d/overlapcircle.md).

## OverlapCircle(Vector2, float, ContactFilter2D, Collider2D\[])

Checks if a Collider is within a circular area.

```csharp
public static int OverlapCircle(Vector2 point, float radius, ContactFilter2D contactFilter, Collider2D[] results)
```

### Parameters

**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): Centre of the circle.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The radius of the circle.**** (\[ContactFilter2D]\(/engine/6000.6/script-reference/unityengine/contactfilter2d)): The contact filter used to filter the results differently, such as by layer mask, Z depth.  Note that normal angle is not used for overlap testing.**** (\[Collider2D\[]]\(/engine/6000.6/script-reference/unityengine/collider2d)): The array to receive results.  The size of the array determines the maximum number of results that can be returned.

### Returns

| Type                                                       | Description                                                  |
| ---------------------------------------------------------- | ------------------------------------------------------------ |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | Returns the number of results placed in the `results` array. |

### Remarks

This function returns the number of Colliders found and places those Colliders in the `results` array.  The results can also be filtered by the `contactFilter`.  Note that filtering by normal angle is not available for overlap functions.

## OverlapCircle(Vector2, float, ContactFilter2D, List\<Collider2D>)

Checks if a Collider is within a circular area.

```csharp
public static int OverlapCircle(Vector2 point, float radius, ContactFilter2D contactFilter, List<Collider2D> results)
```

### Parameters

**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): Centre of the circle.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The radius of the circle.**** (\[ContactFilter2D]\(/engine/6000.6/script-reference/unityengine/contactfilter2d)): The contact filter used to filter the results differently, such as by layer mask, Z depth.  Note that normal angle is not used for overlap testing.**** (\[List\<Collider2D>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)): The list to receive results.

### Returns

| Type                                                       | Description                                                 |
| ---------------------------------------------------------- | ----------------------------------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | Returns the number of results placed in the `results` list. |

### Remarks

The integer return value is the number of results written into the `results` list. The results list will be resized if it doesn't contain enough elements to report all the results. This prevents memory from being allocated for results when the `results` list does not need to be resized, and improves garbage collection performance when the query is performed frequently.

## OverlapCircle(Vector2, float, ContactFilter2D, Allocator)

Checks a circle against Colliders in the PhysicsScene2D, returning all intersections.

```csharp
public static ColliderArray2D OverlapCircle(Vector2 point, float radius, ContactFilter2D contactFilter, Allocator allocator = Allocator.Temp)
```

### Parameters

**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): Centre of the circle.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The radius of the circle.**** (\[ContactFilter2D]\(/engine/6000.6/script-reference/unityengine/contactfilter2d)): The contact filter used to filter the results differently, such as by layer mask, Z depth.  Note that normal angle is not used for overlap testing.**** (\[Allocator]\(/engine/6000.6/script-reference/unity/collections/allocator)): The memory allocator to use for the results. This can only be Allocator.Temp, Allocator.TempJob or Allocator.Persistent.

### Returns

| Type                                                                              | Description                                                                                                                     |
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| [ColliderArray2D](/engine/6000.6/script-reference/unityengine/colliderarray2d.md) | A collection of Collider2D containing the results. The collection does not allocate any managed memory but must be disposed of. |

### Remarks

An "OverlapCircle" is conceptually like looking at the Scene through a circle shape to determine what can be seen. Any [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md) seen can be detected and reported.

This function returns a collection of [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md)  in a [ColliderArray2D](/engine/6000.6/script-reference/unityengine/colliderarray2d.md). The collection does not allocate any managed memory but must be disposed of.

The results can also be filtered by the `contactFilter`.
