Represents a Collider2D that is configured by assigning PhysicsShape2D geometry to it via a PhysicsShapeGroup2D.
Unlike all other Collider2D which are defined indirectly by controlling geometric parameters such as the size of a Box or the radius of a Circle, here the CustomCollider2D is defined entirely by adding, removing and modifying PhysicsShape2D. This results in a fully customized Collider2D containing an unlimited number of low-level PhysicsShape2D which can represent any type of shape or shapes, or emulate any other existing Collider2D such as the CircleCollider2D, BoxCollider2D, CapsuleCollider2D, EdgeCollider2D, CompositeCollider2D or TilemapCollider2D.
Alongside the customized geometry, there is full support for all existing Collider2D functionality such as triggers, physics materials, queries etc.
When assigning PhysicsShape2D to the CustomCollider2D, you can do so either during Edit mode or Play mode.
When modifying the CustomCollider2D during Edit mode, all assigned PhysicsShape2D and associated vertices will be saved with the Unity Scene. When the Unity Scene is loaded again, the CustomCollider2D will maintain its configuration. In this way, it acts like any other Collider2D that you make changes to during Edit mode. Using this ability, Edit mode authoring scripts can be used to create custom geometry.
When modifing the CustomCollider2D during Play mode, all assigned PhysicsShape2D and associated vertices will be lost when exiting Play mode. This acts like any other Collider2D.
customShapeCount | The total number of custom PhysicsShape2D assigned to the Collider. (Read Only) |
customVertexCount | The total number of vertices used by the Collider. (Read Only) |
ClearCustomShapes | Deletes all the shapes and associated vertices for those shapes from the Collider. |
GetCustomShapes | Gets all the physics shapes and vertices in the Collider and places them in the specified PhysicsShapeGroup2D. |
SetCustomShape | Sets a single shape and all associated shape vertices from the specified physicsShapeGroup into the Collider. |
SetCustomShapes | Sets all the shapes and vertices in the Collider to those represented by the specified PhysicsShapeGroup2D. |
enabled | Enabled Behaviours are Updated, disabled Behaviours are not. |
isActiveAndEnabled | Reports whether a GameObject and its associated Behaviour is active and enabled. |
attachedRigidbody | The Rigidbody2D attached to the Collider2D. |
bounciness | Get the bounciness used by the collider. |
bounds | The world space bounding area of the collider. |
callbackLayers | The Layers that this Collider2D will report collision or trigger callbacks for during a contact with another Collider2D. |
composite | Get the CompositeCollider2D that is available to be attached to the collider. |
contactCaptureLayers | The layers of other Collider2D involved in contacts with this Collider2D that will be captured. |
density | The density of the collider used to calculate its mass (when auto mass is enabled). |
errorState | The error state that indicates the state of the physics shapes the 2D Collider tried to create. (Read Only) |
excludeLayers | The additional Layers that this Collider2D should exclude when deciding if a contact with another Collider2D should happen or not. |
forceReceiveLayers | The Layers that this Collider2D can receive forces from during a Collision contact with another Collider2D. |
forceSendLayers | The Layers that this Collider2D is allowed to send forces to during a Collision contact with another Collider2D. |
friction | Get the friction used by the collider. |
includeLayers | The additional Layers that this Collider2D should include when deciding if a contact with another Collider2D should happen or not. |
isTrigger | Is this collider configured as a trigger? |
layerOverridePriority | A decision priority assigned to this Collider2D used when there is a conflicting decision on whether a contact between itself and another Collision2D should happen or not. |
offset | The local offset of the collider geometry. |
shapeCount | The number of active PhysicsShape2D the Collider2D is currently using. |
sharedMaterial | The PhysicsMaterial2D that is applied to this collider. |
usedByComposite | Sets whether the Collider will be used or not used by a CompositeCollider2D. |
usedByEffector | Whether the collider is used by an attached effector or not. |
gameObject | The game object this component is attached to. A component is always attached to a game object. |
tag | The tag of this game object. |
transform | The Transform attached to this GameObject. |
hideFlags | Should the object be hidden, saved with the Scene or modifiable by the user? |
name | The name of the object. |
Cast | Casts the Collider shape into the Scene starting at the Collider position ignoring the Collider itself. |
ClosestPoint | Returns a point on the perimeter of this Collider that is closest to the specified position. |
CreateMesh | Creates a planar Mesh that is identical to the area defined by the Collider2D geometry. |
Distance | Calculates the minimum separation of this collider against another collider. |
GetContacts | Retrieves all contact points for this Collider. |
GetShapeHash | Generates a simple hash value based upon the geometry of the Collider2D. |
GetShapes | Gets all the PhysicsShape2D used by the Collider2D. |
IsTouching | Check whether this collider is touching the collider or not. |
IsTouchingLayers | Checks whether this collider is touching any colliders on the specified layerMask or not. |
OverlapCollider | Get a list of all colliders that overlap this collider. |
OverlapPoint | Check if a collider overlaps a point in space. |
Raycast | Casts a ray into the Scene that starts at the Collider position and ignores the Collider itself. |
BroadcastMessage | Calls the method named methodName on every MonoBehaviour in this game object or any of its children. |
CompareTag | Checks the GameObject's tag against the defined tag. |
GetComponent | Gets a reference to a component of type T on the same GameObject as the component specified. |
GetComponentInChildren | Gets a reference to a component of type T on the same GameObject as the component specified, or any child of the GameObject. |
GetComponentInParent | Gets a reference to a component of type T on the same GameObject as the component specified, or any parent of the GameObject. |
GetComponents | Gets references to all components of type T on the same GameObject as the component specified. |
GetComponentsInChildren | Gets references to all components of type T on the same GameObject as the component specified, and any child of the GameObject. |
GetComponentsInParent | Gets references to all components of type T on the same GameObject as the component specified, and any parent of the GameObject. |
SendMessage | Calls the method named methodName on every MonoBehaviour in this game object. |
SendMessageUpwards | Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour. |
TryGetComponent | Gets the component of the specified type, if it exists. |
GetInstanceID | Gets the instance ID of the object. |
ToString | Returns the name of the object. |
Destroy | Removes a GameObject, component or asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Do not destroy the target Object when loading a new Scene. |
FindAnyObjectByType | Retrieves any active loaded object of Type type. |
FindFirstObjectByType | Retrieves the first active loaded object of Type type. |
FindObjectOfType | Returns the first active loaded object of Type type. |
FindObjectsByType | Retrieves a list of all loaded objects of Type type. |
FindObjectsOfType | Gets a list of all loaded objects of Type type. |
Instantiate | Clones the object original and returns the clone. |
bool | Does the object exist? |
operator != | Compares if two objects refer to a different object. |
operator == | Compares two object references to see if they refer to the same object. |
OnCollisionEnter2D | Sent when an incoming collider makes contact with this object's collider (2D physics only). |
OnCollisionExit2D | Sent when a collider on another object stops touching this object's collider (2D physics only). |
OnCollisionStay2D | Sent each frame where a collider on another object is touching this object's collider (2D physics only). |
OnTriggerEnter2D | Sent when another object enters a trigger collider attached to this object (2D physics only). |
OnTriggerExit2D | Sent when another object leaves a trigger collider attached to this object (2D physics only). |
OnTriggerStay2D | Sent each frame where another object is within a trigger collider attached to this object (2D physics only). |