# OverlapPoint

> Checks a point against Colliders in the scene, returning the first Collider it encounters.

## Definition

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

## OverlapPoint(Vector2, int, float, float)

Checks a point against Colliders in the scene, returning the first Collider it encounters.

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

### Parameters

**** (\[Vector2]\(/engine/6000.7/script-reference/unityengine/vector2)): A point in world space.**** (\[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.7/script-reference/unityengine/collider2d.md) | The Collider overlapping the point. |

### Remarks

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 overlaps the point then the one returned will be the one with the lowest Z coordinate value. Null is returned if there are no Colliders over the point.

Additional Resources: [Physics2D.OverlapPointAll](/engine/6000.7/script-reference/unityengine/physics2d/overlappointall.md)

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

Checks a point against Colliders in the scene, returning all intersections.

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

### Parameters

**** (\[Vector2]\(/engine/6000.7/script-reference/unityengine/vector2)): A point in world space.**** (\[ContactFilter2D]\(/engine/6000.7/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.7/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.

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

Checks a point against Colliders in the scene, returning all intersections.

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

### Parameters

**** (\[Vector2]\(/engine/6000.7/script-reference/unityengine/vector2)): A point in world space.**** (\[ContactFilter2D]\(/engine/6000.7/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.

## OverlapPoint(Vector2, ContactFilter2D, Allocator)

Checks a point against Colliders in the scene, returning all intersections.

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

### Parameters

**** (\[Vector2]\(/engine/6000.7/script-reference/unityengine/vector2)): A point in world space.**** (\[ContactFilter2D]\(/engine/6000.7/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.7/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.7/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 "OverlapPoint" is conceptually like looking at the Scene through an infinitely small hole to determine what can be seen. Any [Collider2D](/engine/6000.7/script-reference/unityengine/collider2d.md) seen can be detected and reported.

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

This function will never detect an [EdgeCollider2D](/engine/6000.7/script-reference/unityengine/edgecollider2d.md) as a point cannot ever perfectly overlap the infinitely thin edge defined by that collider.

Additional Resources: [Collider2D.OverlapPoint](/engine/6000.7/script-reference/unityengine/collider2d/overlappoint.md), [Rigidbody2D.OverlapPoint](/engine/6000.7/script-reference/unityengine/rigidbody2d/overlappoint.md)
