Проблема с анимацией Unity

Проблема по всей видимости в анимации, потому что размер правильно изменяется для поворота но поворот странный

Вот видео, как выглядит проболема

А в чем именно проблема-то? Из видео не понял.
Как должно быть?
Что в коде, что в анимации?

Я хочу чтоб он бегал как в начале ролика, смотря влево бежать влево , смотря вправо бежать вправо

Есть две Анимации

  1. Idle - просто закинул в окно Animation 1 спрайт спокойного состояния
  2. Run - просто закинул в окно Animation 3 спрайта

Код поворота влево-вправо

if (facingRight == true && MoveInput > 0)
        {
            FlipX();
        }
        else if (facingRight == false && MoveInput < 0)
        {
            FlipX();
        }

FlipX()

    void FlipX()
    {
        facingRight = !facingRight;
        Vector3 Scaler = transform.localScale;
        Scaler.x *= -1;
        transform.localScale = Scaler;
    }

Код поворота вверх-вниз

    if (rb2.gravityScale == 2 && Input.GetMouseButtonDown(0))
    {
        rb2.gravityScale = -2;
    }
    else if (rb2.gravityScale == -2 && Input.GetMouseButtonDown(0))
    {
        rb2.gravityScale = 2;
    }

Хотя дело не в анимации. Я проверил с помощью обычных спрайтов квадрата, таже проблема, но не понимаю в чём проблема

А MoveInput откуда?

    float MoveInput;

для движения

        MoveInput = Input.GetAxis("Horizontal");
        rb2.velocity = new Vector2(MoveInput * Speed, rb2.velocity.y);

так же на видео видно переворот вверх ногами может в нём что то не то

        if (transform.position.y >= 0)
        {
            Quaternion Rotate = transform.localRotation;
            Rotate.x = 180;
            transform.localRotation = Rotate;
        }
        else if (transform.position.y <= 0)
        {
            Quaternion Rotate = transform.localRotation;
            Rotate.x = 0;
            transform.localRotation = Rotate;
        }

но по сути он вроде не влияет на проблему которая возникла

исправил.

Почему то когда он приземлялся у него Rotation.y изменялся на 180

решил так

        if (transform.position.y >= 0)
        {
            Quaternion Rotate = transform.localRotation;
            Rotate.x = 180;
            transform.localRotation = Rotate;
        }
        else if (transform.position.y <= 0)
        {
            Quaternion Rotate = transform.localRotation;
            Rotate.x = 0;
            Rotate.y = 0;
            transform.localRotation = Rotate;
        }