Enabling Freeze Rotation changes rotation axis
I have a simple cone (my ship), created in Blender, imported into my scene. I rotate the cone with this code in FixedUpdate(), and it works as expected, the ship rotates only in the Z axis:
Vector3 newTorque = new Vector3(0.0f, 0.0f, -shipRotateHorizontalAxisInput);
rb.AddRelativeTorque(newTorque * shipRotateThrustStrength * Time.deltaTime);
Where shipRotateHorizontalAxisinput is normalized to -1.0 to 1.0 and shipRotateThrustStrength is 40.0.
However, if I check the Unity box to enable Freeze Rotation for X and Y axes (which seems logical), the rotation code now produces movement about what appears to be an axis with "slope" 1 through the the XZ plane.
Further, if I keep the Freeze Rotation options enabled but change the AddRelativeTorque to AddTorque, the weird rotation disappears, and all is well. Except I don't WANT it in world coordinates like AddTorque manages - I want local coordinates to my ship. So: what about freezing the rotation is so bad for the rotation axis of my ship? :)