Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Attach custom data to Physics Core 2D API objects

Attach values and physics masks to physics objects so you can fetch them later.
Read time 1 minuteLast updated 13 days ago

Note
This documentation is about writing C# scripts using the
Unity.U2D.Physics
API. To use 2D physics in the Unity Editor using components like the Rigidbody 2D component, refer to 2D physics instead.
To attach custom data to an object you create using the Physics Core 2D API, use the
PhysicsUserData
type.
You can attach data to the following types:
  • World
  • Body
  • Shape
  • Chain
  • Joint
Follow these steps:
  1. Create a
    PhysicsUserData
    instance and populate it with your custom fields. For example:
    PhysicsUserData physicsUserData = new PhysicsUserData { customObject = this, customBool = true, customFloat = 123.4f, customInt = 567, customPhysicsMask = PhysicsMask.All };
  2. Assign a
    PhysicsUserData
    instance to the
    userData
    property of the physics object. For example, to assign the custom data to a shape:
    myShape.userData = physicsUserData;
  3. To fetch the data, for example when you detect a collision, get the
    userData
    property of the physics object. For example:
    Debug.Log(myShape.userData.intValue);

Additional resources