NPC不断闯入墙-Unity2D

时间:2019-03-19 23:23:48

标签: unity3d collision

我的NPC可以通过void OnCollisionEnter2D(Collision2D col)和光线投射进行碰撞检测,以防万一前方有东西,但偶尔会卡住,试图通过障碍物到达随机生成的目的地。有什么想法为什么会发生吗?这是代码:

碰撞:

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

0 个答案:

没有答案