NPC продолжает ходить в стены - Unity2D - PullRequest
0 голосов
/ 20 марта 2019

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