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