NavmeshAgent при подходе к точке назначения бежит на месте

Есть навмеш агент, к которому прикреплен управляющий скрипт

 void Update()
{
   
    if(Input.GetMouseButtonDown(0))
    {
        playerCharacter.endAttack();
        RaycastHit hit;
        anim.SetBool("Attack", false);
        if (Physics.Raycast(MainCamera.ScreenPointToRay(Input.mousePosition), out hit))
        {
            Attacking = false;



           
           
           
           // anim.SetBool("Walk", true);
           
            target = hit.collider.gameObject;
            if (target?.GetComponent<EnemyCharacter>())
            {
                playerCharacter.endAttack();
                playerCharacter.weapon.EnemyCharacter = null;
                playerCharacter.weapon.EnemyCharacter = target.GetComponent<EnemyCharacter>();

                playerCharacter.weapon.EnemyCharacter.OnDeath += EnemyOnDeath;
                CanInteract = true;
                agent.SetDestination(target.transform.position);
            }
            else
            {
                agent.SetDestination(hit.point);
                CanInteract = false;
            }

         
        }
     
    }
   

    if (agent.hasPath|| agent.remainingDistance > agent.stoppingDistance) Stopped = false;
    else Stopped = true;

    if(Stopped)
    {
        if(CanInteract)
        {
            anim.SetBool("Walk", false);

            anim.SetBool("Attack", true);

            playerCharacter.startAttack();

            Attacking = true;
        }
        else
        {
            anim.SetBool("Walk", false);
            anim.SetBool("Attack", false);
        }
    }
    else
    {
        anim.SetBool("Walk",true);
        anim.SetBool("Attack", false);
    }


    Debug.Log(/*Stopped+"|||"+CanInteract agent.hasPath*/agent.pathPending +"\\"+ agent.hasPath);
}

Здесь я проверяю, есть ли у агента путь, а затем записываю соответствующее значение в переменную Stopped, после чего использую эту переменную для управления анимацией персонажа. Проблема в том, что при дистанции остановки > 1,5 агент достигает этого расстояния и начинает бегать на месте. при этом у агента все еще есть путь, и из-за этого анимация бега продолжает воспроизводиться введите сюда описание изображения

Красная точка указывает путь назначения, зеленый круг- радиус остановки. Может кто знает, в чем проблема?


Ответы (0 шт):