Best way to handle LOTS of potential rigidbodies?

So I'm building a rather large city in which I would like the buildings to be mostly destructable. The way I'm handling it at the moment is working fairly well but I'm not exactly a programmer so I wanted to see if I could be missing any methods of saving even more processing overhead.

At the moment I have a big static cube trigger in the exact dimensions of the building I need. I have a prefab of the same size tower that has been diced up into several hundred rigidbody pieces, (bound together with fixed joints) that spawns when the initial cube trigger is triggered.

When the player starts to destroy the building, pieces moving above a certain velocity spawn a one-shot particle cloud and destroy themselves which helps eliminate a fair bit of the overhead so far while remaining fairly satisfying visually.

Occlusion culling handles the initial trigger buildings pretty well.

So that's where I'm at so far. Perhaps I could limit the number of active rigidbodies allowed at any given time? Anything else? Even if you're not sure if it would work out visually I might be able to use it. I'm completely okay with "cheating" the way you would really expect everything to behave.

Thanks! -Seth

There isn't too much you can do if you must have all those rigid bodies. Increase the fixed time step if you can. That will reduce the frequency you have to recalculate the rigidbodies.

This would take some work to implement, but would definitely same some processing overhead. If you can, disable rigidbodies and colliders while they are falling. And manipulate the transform directly- basically just add gravity. Or at least disable the colliders.

The thing is that you can enable or disable any component at any time , that means that if you are not shooting or whatever , none is enabled , but if you are , then the approximate region of where the collision should happen objects will enable their component. In you case it will activate the building , that should enable all small cubes collider component . Also , occlusion culling is great , but also check for mipmapping , lightmapping . Try to reduce what is unused the most . Try work with simple statement , not repeating where not needed .