So, Unity, if I am not mistaking, uses a right hand coordinate system. Meaning a positive rotation along the z axis in a top down 2d game is counterclockwise and a 90 degree heading is due west.
In navigation, looking down on a ship from above, a positive rotation along the z axis changing the heading is clockwise and a 90 degree angle is due east. Heading (navigation) - Wikipedia
So, combining those worlds, I am making a top down game that has ships. The player, will expect a 30 degree turn to slightly turn him towards the east. Unity will make a 30 degree turn to go slightly to the west. Of course, I can quite simple just do this;
rotation.Value = quaternion.RotateZ(targetHeading * -Mathf.Deg2Rad);
But that feels wrong somehow. What would be a good way to handle this situation?