2D Y-Axis Rotation Over / Under Rotating

This is the code I have been trying

	public void Flip()
	{
		lookingRight = !lookingRight;
		//transform.Rotate (Vector3.up * -180);
		//rb2d.tra = (lookingRight) ? Quaternion.Euler(0,0,0) : Quaternion.Euler(0,180,0);
		//transform.rotation = (lookingRight) ? Quaternion.Euler(0,0,Space.Self) : Quaternion.Euler(0,180,Space.Self);
		if (!lookingRight)
			transform.Rotate(0,180,0,Space.Self);
		else
			transform.Rotate(0,-180,0,Space.Self);
	
		//transform.localScale = myScale;

The game is in 2D mode, no matter what I do the Y Axis ends up being like 186 / 333 / 10, etc.
It never just goes to 0 / 180 / 0 and the X and Z axis change also.

Anyone have any idea why?

You are using transform.Rotate, which adds to the object’s current rotation rather than setting it. Try using transform.eulerAngles instead.