Version: Unity 6.5 Alpha (6000.5)
Language : English
Configure global Physics Core 2D API settings
Collisions and interactions in the Physics Core 2D API

Attach custom data to Physics Core 2D API objects

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

Configure global Physics Core 2D API settings
Collisions and interactions in the Physics Core 2D API