Why does Input.GetAxis("Mouse X/Y") result in inverted movement?

I’ve written a script that gets the X and Y movement from the mouse and translates that into rotation in the x & y axis.

if (isMouseLookMode == true)
{
     mouseMovement.x = mouseLookSensitivity * Input.GetAxis ("Mouse X");
     mouseMovement.y = -mouseLookSensitivity * Input.GetAxis ("Mouse Y");
     transform.Rotate (mouseMovement.y, mouseMovement.x, 0);
}

However, I had to swap the x with the y values, and make the y value negative to achieve the same mouse rotation as in Unity (ie. holding down right mouse button rotates the viewport).

Why is this the case?

Because that’s what you’d expect…? Moving the mouse right leads to a clockwise rotation about the y-axis, moving the mouse up leads to a anti-clockwise rotation about the x-axis. I’m not sure what the problem is, but it sounds like you don’t understand the parameters to transform.Rotate: Unity - Scripting API: Transform.Rotate