Mass rotation of children rigidbodies around point? Is it possible?

I am trying to create a master “container” object which allows me to effectively rotate a scene - kind of like rotating a chess-board with all it’s child pieces in tact, except the pieces are also shooting rigidbodies at each other.

Is this possible?

I don’t see why it wouldn’t be possible. But if you’re rotation everything in a scene around one axis, why not just move the camera?

Thanks for your reply. I can’t move the camera because I’m using VR. Looking forward to help with this!

Have you tried it? Are there any reasons why you think it won’t work? It sounds ok to me, but I don’t want to say I’m sure. I could see some potential problems with physics, if applicable.

As long as all movement of objects is local, I think it will work for limited cases, but Rigidbody’s will probably have some trouble as they try to retain their velocities while being rotated.

Yes, I have tried it. Any children of the partner with a rigid body attached don’t rotate properly.

What do you expect to happen when you make the rotation, and what actually happens?

I expect the children (rigidbodies) will rotate in the same manner as the non rigidbody children. I also expect the rigidbodies direction of movement will also be altered to match the rotation of the parent object.

What actually happens is the non-rigid bodies rotate normally, however the rigidbody children seem to rotate at a slower rate and continue their original velocity (however it seems this velocity is slightly changed).

Okay so bear with me on this one since I’m not on a computer right now, but there’s not reason this shouldn’t work. Use OnPre and OnPostRender to rotate the parent object and then undo the rotation, respectively. So essentially while your physics simulation will occur in non-rotated space, to the viewer everything should be rotating as expected. And since you undo the rotation before the physics step is run again, Unity is none the wiser.

Ok, maybe a dumb question, but why can’t you move the camera when using VR?
However, I agree with others that, in theory, it should work regardless.
What method are you using to rotate the parent object?
I know that the physics engine might do some funky stuff when you try to rotate it in the editor.

Also, if nothing else works, there might be a slightly more complicated solution.
Code the rotation yourself without using the parent object. Do the rotation of each object individually and change the velocity yourself as well.

Just some useful functions to look into if you decide to try to code the rotation yourself.

transform.TransformDirection();
transform.InverseTransformDirection();
transform.TransformPoint();
transform.InverseTransformPoint();
transform.TransformVector();
transform.InverseTransformVector();

Although there probably is a simpler way.