Manually halting Physics updating

I’m currently creating a 2D iPhone game, and running into a bottleneck.

I have a heap of Rigidbodies (40ish) and they are stackable (using parenting).

I can pick up and move these stackable objects, and it moves all objects on top of it (and then all the objects on top of those as well, etc…).

I keep this working by sleeping the Rigidbodies almost constantly (they are only active when they fall and then only the bottom most object).

The issue I am running into is that I can move 41 of these objects, but only when they are stacked in a staggered fashion (1 - 20 on that - 20 on an object on the second layer), and it runs fine, however putting all 40 objects on 1 container seems to cause the Physics system to grind to a halt. I’m moving 41 objects in both cases but one framerate is 10% of the other.

I’m curious if I can disable any physics position updating or rechecking of it’s bounds or moving of Octrees(if that’s how the colliders are organized), or if anyone can determine why moving sleeping rigidbodies falls apart but only when clumped in a very particular way.

PhysX uses k-trees for spatial organisation from what I recall.

But as for the question itself: You can use the Sleep and Wake functions to put it to sleep and get it back again or you make it kinematic

The odd part is that they are already all set to Kinematic at that point(they are locked onto the parent objects).

All Physics related scripts are also disabled, however moving the whole pack of objects seems to cause significantly larger spikes in Physics.Simulate(but only when they are parented to the same parent, no issues when they are split up in a hierarchy between parents).