Должно быть внутри противника
if (Vector2.Distance(player.transform.position, rb.position) >= enemyData.GetRangeAttack())
где player.transform.position - позиция игрока
rb.position - позиция врага
enemyData.GetRangeAttack() - расстояние до которого враг приблизится
Условие можешь вставить в Update()
Внутри условия ставишь свой MoveTowards
Это для Unity 2D для 3D аналогичным образом