NPC продолжает натыкаться на стены — Unity2D

#unity3d #collision

#unity-игровой движок #столкновение

Вопрос:

У моих NPC есть функция обнаружения столкновений с помощью void OnCollisionEnter2D (Collision2D col) и raycast на случай, если что-то впереди, но иногда они застревают, пытаясь добраться до случайно сгенерированного пункта назначения через препятствия. Есть идеи, почему это происходит? Вот код:

столкновения:

 void OnCollisionEnter2D(Collision2D col)
{
    if (col.collider == playerCollider)
    {
       // Code
    }

    else
    {
        regenDestination();
    }
}
  

raycast

 void throwRaycast()
{
    RaycastHit2D hitInfo = Physics2D.Raycast(transform.position, randomDestination, raycastDistance);
    Debug.DrawLine(transform.position, randomDestination, Color.red);
    if (hitInfo.collider != null)
    {
        regenDestination();
    }
}
  

смена места назначения

 void regenDestination()
{
    randomDestination = new Vector2(Random.Range(-11, 11), Random.Range(-5, 5));
    GoToLocation();
}
  

Комментарии:

1. Возможно, вместо этого вы захотите использовать навигационное средство .

2. СВЯТЫЕ УГОДНИКИ, я не знал, что есть такая функция, спасибо вам ооочень большое!