Version: 2022.3
LanguageEnglish
  • C#

ColliderDistance2D

struct in UnityEngine

/

Implemented in:UnityEngine.Physics2DModule

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

Represents the separation or overlap of two Collider2D.

The ColliderDistance2D primarily defines a point on the exterior of each Collider2D along with the distance between those two points. The 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 normal is provided that is a normalized vector that points from pointB to pointA. This vector, when scaled with the distance, provide a vector that can be used to move the Collider2D so that they are no longer overlapped (if the distance is negative) or so they are touching (if the 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 and Rigidbody2D.Distance.

Properties

distanceGets the distance between two colliders.
isOverlappedGets whether the distance represents an overlap or not.
isValidGets whether the distance is valid or not.
normalA normalized vector that points from pointB to pointA.
pointAA point on a Collider2D that is a specific distance away from pointB.
pointBA point on a Collider2D that is a specific distance away from pointA.