#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. СВЯТЫЕ УГОДНИКИ, я не знал, что есть такая функция, спасибо вам ооочень большое!