Мои 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();
}