2D Platforming controls?

Trying to go for a simple 2D platformer rendered with unity physics… (No translate, offsetting, etc.) For some reason rotating the player model by 180 degrees messes up the movement. Using this for moving left and right:

        moveDirection = Vector3(0, 0, Input.GetAxis("Horizontal"));
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;

Simple really. The animating just turns the character depending on key pressed and plays the animations. Works great, except when pressing left on the keyboard the character keeps going right? Depending on where he is he’ll stutter in the same spot. I thought TransformDirection converted character movement into world movement so the direction he’s facing shouldn’t matter?

Because when you rotate the character you change the forward axis which the player is on for instance if x was forward it now becomes left or right because of the rotation

To expand on that, the solution is to have your graphic be a child of the object, and just rotate the child, not the whole object.