Как сделать поворот персонажа после остановки в ту сторону, куда он двигался?

Чтобы реализовать поворот персонажа после остановки в ту сторону, куда он двигался, вам понадобится реализовать следующую логику:

1. Определите переменную для хранения направления движения персонажа, например, переменную типа перечисления (enum) с возможными значениями "Вправо" и "Влево". Назовем эту переменную "direction".

enum Direction
{
    Right,
    Left
}

2. В коде вашего персонажа определите метод, который будет обновлять текущее состояние переменной "direction" в зависимости от его движения. Вы можете проверять, было ли движение вправо или влево, например, основываясь на значении встроенной переменной "transform.position". Если текущая позиция персонажа больше его предыдущей позиции, значит персонаж движется вправо, иначе - влево.

void UpdateDirection()
{
    if (transform.position.x > previousPosition.x)
    {
        direction = Direction.Right;
    }
    else if (transform.position.x < previousPosition.x)
    {
        direction = Direction.Left;
    }

    previousPosition = transform.position;
}

3. Вызывайте этот метод каждый кадр в методе "Update" вашего персонажа, чтобы обновлять текущее направление персонажа.

void Update()
{
    UpdateDirection();

    // ваш код для управления персонажем
}

4. Настройте сам поворот персонажа в зависимости от текущего значения переменной "direction". Вы можете использовать методы "Rotate" или "LookAt" для поворота вправо или влево.

void RotateCharacter()
{
    if (direction == Direction.Right)
    {
        transform.rotation = Quaternion.Euler(0, 0, 0); // поворот вправо
    }
    else if (direction == Direction.Left)
    {
        transform.rotation = Quaternion.Euler(0, 180, 0); // поворот влево
    }
}

5. Вызывайте метод "RotateCharacter" после остановки персонажа. Вы можете проверять скорость персонажа для определения остановки.

void Update()
{
    UpdateDirection();

    // ваш код для управления персонажем

    if (characterController.velocity.magnitude < 0.1f)
    {
        RotateCharacter();
    }
}

В итоге, каждый раз, когда персонаж останавливается, код будет обновлять направление персонажа. Как только скорость становится меньше определенного значения, персонаж будет поворачиваться в соответствующую сторону, опираясь на сохраненное направление его движения.