TLDR: childless objects, each with a rigidbody and a collider, float around and collide. Upon collision they rotate around local pivot points rather than their centers of mass.
I’m trying to work on a simple physics playground where you can drag objects around and stack them onto each other. Gravity is turned off per object so that the object would float in the air while being dragged around, and is turned back on when the object is dropped. The objects have their pivot point at the bottom for ease of placement. The objects do not have any children, each has either a box or a convex mesh collider, each has a Rigidbody componenent. On colliding each other the objects start rotating while floating in the air, which is what I want, but for some reason they rotate around their local axis pivot point rather than their center of mass. I thought it should be the other way around, am I mistaken?
I’ve checked things with DrawGizmos and seems that centers of mass are calculated properly, right in the center, halfway above the pivot (which is touching the bottom). Sure, I can move pivot points to the centers for each object, but maybe I’m doing something wrong with my RigidBodies? Reading other people’s question about center of mass rotations reveals that for the others the problem is reversed: objects rotate around center of mass for them while they want rotations to happen around pivot or some other custom point. My Unity version is 2018.3.11f1 if that helps.