Rigidbody2D.isKinematic = true and parenting unresponsive

I’m trying to have one object parent to another when they collide (essentially what a fixed joint would do if we had one for 2D). Here is the code I’m using:

collider2D.enabled = false; // just for good measure
rigidbody2D.isKinematic = true; // disable physics simulation on my object
transform.parent = coll.transform; // parent to object we've collided with
coll.rigidbody.angularVelocity = 90.0f; // spin object we collided with to test parenting

Unfortunately this works but with a slight delay where my object remains under physics control for a few frames before the parent relationship takes over. Oddly enough I can get things to work correctly if I just destroy the rigidbody2D component straight away:

collider2D.enabled = false; // just for good measure
DestroyObject(rigidbody2D); // remove rigidbody
transform.parent = coll.transform; // parent to object we've collided with
coll.rigidbody.angularVelocity = 90.0f; // spin object we collided with to test parenting

So what gives? From everything I’ve read online isKinematic = true should be the equivalent of other components’ enable flag. Note: I don’t want to destroy and re-add the rigidbody as I will continue to need it after unparenting the objects later in the game. Any ideas?

Edit: After some messing around I’ve noticed that is specifically the parenting that is being delayed not the isKinematic change. All the other aspects of isKinematic seem to take affect immediately.

Hey, there is a Joint you can use, DistanceJoint2d with distance = 0. That´s the way I solved it. Hope this helps. You don´t need to parent objects.