# OverlapArea

> Finds Colliders that intersect a rectangular aream returning the first it encounters.

## Definition

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

## OverlapArea(Vector2, Vector2, int, float, float)

Finds Colliders that intersect a rectangular aream returning the first it encounters.

```csharp
public static Collider2D OverlapArea(Vector2 pointA, Vector2 pointB, int layerMask, float minDepth, float maxDepth)
```

### Parameters

**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): One corner of the rectangle.**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): Diagonally opposite the point A corner of the rectangle.**** (\[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.5/script-reference/unityengine/collider2d.md) | The Collider overlapping the area. |

### Remarks

The rectangle is defined by two diagonally opposite corner coordinates in world space. You can think of these as top-left and bottom-right but the test will still work if the ordering of the points is reversed. 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 area then the one returned will be the one with the lowest Z coordinate value. Null is returned if there are no Colliders in the area.

Additional Resources: [Physics2D.OverlapAreaAll](/engine/6000.5/script-reference/unityengine/physics2d/overlapareaall.md).

## OverlapArea(Vector2, Vector2, ContactFilter2D, Collider2D\[])

Finds Colliders that intersect a rectangular area.

```csharp
public static int OverlapArea(Vector2 pointA, Vector2 pointB, ContactFilter2D contactFilter, Collider2D[] results)
```

### Parameters

**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): One corner of the rectangle.**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): Diagonally opposite the point A corner of the rectangle.**** (\[ContactFilter2D]\(/engine/6000.5/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.5/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.

## OverlapArea(Vector2, Vector2, ContactFilter2D, List\<Collider2D>)

Finds Colliders that intersect a rectangular area.

```csharp
public static int OverlapArea(Vector2 pointA, Vector2 pointB, ContactFilter2D contactFilter, List<Collider2D> results)
```

### Parameters

**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): One corner of the rectangle.**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): Diagonally opposite the point A corner of the rectangle.**** (\[ContactFilter2D]\(/engine/6000.5/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.

## OverlapArea(Vector2, Vector2, ContactFilter2D, Allocator)

Finds Colliders that intersect a rectangular area.

```csharp
public static ColliderArray2D OverlapArea(Vector2 pointA, Vector2 pointB, ContactFilter2D contactFilter, Allocator allocator = Allocator.Temp)
```

### Parameters

**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): One corner of the rectangle.**** (\[Vector2]\(/engine/6000.5/script-reference/unityengine/vector2)): Diagonally opposite the point A corner of the rectangle.**** (\[ContactFilter2D]\(/engine/6000.5/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.5/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.5/script-reference/unityengine/colliderarray2d.md) | The NativeArray that contains the results. This must be disposed of unless it contains no results. |

### Remarks

This function returns a collection of [Collider2D](/engine/6000.5/script-reference/unityengine/collider2d.md)  in a [ColliderArray2D](/engine/6000.5/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`.
