Weird movement issues in 2D - character defaults to facing right

ok so yeah - basically my character can only move left and right, if he moves right, it works as intended. If he moves left, he has a weird issue which looks like something is slowing him down. Then once you stop moving, he turns to face the right again. I’m not sure this is a scripting issue because if I remove everything in the script except the movement, the problem remains.

Here is what I am using for movement:

	if (Input.GetAxis("Horizontal") > 0 && canClimb == false)
		transform.Translate(Vector2.right * Speed * Time.deltaTime);
		transform.eulerAngles = new Vector2(0,0);

	else if (Input.GetAxis("Horizontal") < 0 && canClimb == false)
		transform.Translate(Vector2.right* -Speed * Time.deltaTime);
		transform.eulerAngles = new Vector2(0,180);


Anyone have any ideas? Shall I post a video of what I’m talking about, if you don’t understand? Could the animator or something else be causing this?

According to 2d platform example, you can define new bool var called facingRight and check if player needs flipping when pressing the movement keys. Also you can change your movement way.

private bool facingRight = true;

float h = Input.GetAxis("Horizontal");
if (h != 0 && !canClimb) {
transform.Translate(h * Speed * Time.deltaTime);
if (h < 0 && facingRight)
if (h > 0 && !facingRight)

void Flip()
facingRight = !facingRight;
transoform.localScale = new Vector2(transform.localScale.x * -1, 0f);

Otherwise, try to uncheck Apply root animation in animator, it may cause troubles.