Represents the separation or overlap of two Collider2D.
The ColliderDistance2D primarily defines a point on the exterior of each Collider2D along with the ColliderDistance2D.distance between those two points. The ColliderDistance2D.distance between them can be positive indicating that the Collider2D are separated (not overlapped), zero indicating that they are touching (but not overlapped) or negative indicating that they are overlapped.
A ColliderDistance2D.normal is provided that is a normalized vector that points from ColliderDistance2D.pointB to ColliderDistance2D.pointA. This vector, when scaled with the ColliderDistance2D.distance, provide a vector that can be used to move the Collider2D so that they are no longer overlapped (if the ColliderDistance2D.distance is negative) or so they are touching (if the ColliderDistance2D.distance is positive).
A common use-case for this is solving overlaps between two Collider2D, particularly when attached to a Rigidbody2D set to be RigidbodyType2D.Kinematic.
Additional resources: Physics2D.Distance, Collider2D.Distance, Rigidbody2D.Distance
| Property | Description |
|---|---|
| distance | Gets the distance between two colliders. |
| isOverlapped | Gets whether the distance represents an overlap or not. |
| isValid | Gets whether the distance is valid or not. |
| normal | A normalized vector that points from pointB to pointA. |
| pointA | A point on a Collider2D that is a specific ColliderDistance2D.distance away from ColliderDistance2D.pointB. |
| pointB | A point on a Collider2D that is a specific ColliderDistance2D.distance away from ColliderDistance2D.pointA. |