Почему мой персонаж в конце концов замедляется и перестает двигаться с помощью MoveTowards()?

#unity3d

Вопрос:

Это пошаговая игра, которую я тестирую в Unity. Когда я запускаю его, все нормально в 1-м повороте, во 2-м повороте он замедляется, а к 3-му повороту персонаж просто перестает двигаться. Приношу извинения, если это очевидная проблема, но я хотел бы найти решение. Я уже пробовал использовать FixedUpdate. Я использую MoveTowards в цикле while для перемещения объекта персонажа.

 Update()
{
    if (turn == true)
    {
        Move();
    }
}

Move() 
{

    pos = target.transform.position;
    StartCoroutine(MoveOverTime());

    IEnumerator MoveOverTime() 
    {
        while ((transform.position - pos).magnitude > 0.1f)
        {
            transform.position = Vector3.MoveTowards(transform.position, pos, 0.3f * Time.deltaTime);
            yield return null;
        }
        yield return null;
    }
    turn = false;
}