# Distance

> Calculates the minimum distance between two Colliders.

## Definition

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

## Distance(Collider2D, Collider2D)

Calculates the minimum distance between two Colliders.

```csharp
public static ColliderDistance2D Distance(Collider2D colliderA, Collider2D colliderB)
```

### Parameters

**** (\[Collider2D]\(/engine/6000.6/script-reference/unityengine/collider2d)): A Collider used to calculate the minimum distance against `colliderB`.**** (\[Collider2D]\(/engine/6000.6/script-reference/unityengine/collider2d)): A Collider used to calculate the minimum distance against `colliderA`.

### Returns

| Type                                                                                    | Description                                               |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [ColliderDistance2D](/engine/6000.6/script-reference/unityengine/colliderdistance2d.md) | The minimum distance between `colliderA` and `colliderB`. |

### Remarks

A valid `colliderA` and `colliderB` must be provided for the returned [ColliderDistance2D](/engine/6000.6/script-reference/unityengine/colliderdistance2d.md) to be valid i.e. both  `colliderA` or `colliderB` should not be NULL, should not be disabled and must contain collision shapes.  You can check if the returned value is valid by checking [ColliderDistance2D.isValid](/engine/6000.6/script-reference/unityengine/colliderdistance2d/isvalid.md).

Additional Resources: [Collider2D.Distance](/engine/6000.6/script-reference/unityengine/collider2d/distance.md) and [Rigidbody2D.Distance](/engine/6000.6/script-reference/unityengine/rigidbody2d/distance.md).

## Distance(Collider2D, Vector2, float, Collider2D, Vector2, float)

Calculates the minimum distance between two Colliders.

```csharp
public static ColliderDistance2D Distance(Collider2D colliderA, Vector2 positionA, float angleA, Collider2D colliderB, Vector2 positionB, float angleB)
```

### Parameters

**** (\[Collider2D]\(/engine/6000.6/script-reference/unityengine/collider2d)): A Collider used to calculate the minimum distance against `colliderB`.**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): The position to use for `colliderA`.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The rotation to use for `colliderA`.**** (\[Collider2D]\(/engine/6000.6/script-reference/unityengine/collider2d)): A Collider used to calculate the minimum distance against `colliderA`.**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): The position to use for `colliderB`.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The rotation to use for `colliderB`.

### Returns

| Type                                                                                    | Description                                               |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [ColliderDistance2D](/engine/6000.6/script-reference/unityengine/colliderdistance2d.md) | The minimum distance between `colliderA` and `colliderB`. |

### Remarks

A valid `colliderA` and `colliderB` must be provided for the returned [ColliderDistance2D](/engine/6000.6/script-reference/unityengine/colliderdistance2d.md) to be valid i.e. both `colliderA` or `colliderB` should not be NULL, should not be disabled and must contain collision shapes. You can check if the returned value is valid by checking [ColliderDistance2D.isValid](/engine/6000.6/script-reference/unityengine/colliderdistance2d/isvalid.md).

**NOTE**: The positions and angles used here represent the position of the [Rigidbody2D](/engine/6000.6/script-reference/unityengine/rigidbody2d.md) the respective [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md) is attached to. If the [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md) is offset from the center of mass then the [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md) will use the same offset. This can be confusing so it is recommened that only [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md) that align with the center of mass are used. If not then you must take this into account. If the [Collider2D](/engine/6000.6/script-reference/unityengine/collider2d.md) is not attached to a [Rigidbody2D](/engine/6000.6/script-reference/unityengine/rigidbody2d.md), this call cannot be used and will result in a warning.

Additional Resources: [Collider2D.Distance](/engine/6000.6/script-reference/unityengine/collider2d/distance.md) and [Rigidbody2D.Distance](/engine/6000.6/script-reference/unityengine/rigidbody2d/distance.md).
