MoveRotation used to consistently rotate a rigidbody around its pivot point in Unity 4.x, but after updating the project to 5, it sometimes rotates around the object’s center.
I have a parent object whose children extend out from the parent in a row. The parent’s position, at the end of the row, is the pivot point, and MoveRotation used to always rotate around the parent’s position. Now, if any constraints (freeze position or rotation) are set, MoveRotation’s pivot point is the middle of the row of children. If constraints are none, then it still rotates around the parent’s position at the end of the row.
The user is rotating the object, so it must stop moving if it hits something (which is why I’m using MoveRotation). The problem is, if I turn off FreezePosition, the object’s position drifts when it hits something. Also, without freezing rotation in the other two axes, the object’s rotation tends to drift in all axes even though MoveRotation is just rotating one axis. I’m not sure how to fix this and make it work like it used to.