所以我用寻路算法制作了一个游戏。与一些NPC对象。问题是当我使用多个npc时,我标记的条件无法正常工作,但是当我仅使用1个npc时,条件运行良好。有人可以帮我吗?谢谢
我正在使用Debug.Log测试我的代码。当剩余距离小于StoppingDistance时,程序将在控制台中打印“ R”。当我仅使用一个对象npc时,一切工作正常。但是当我使用多个NPC时,该条件无法正常工作。我是说因为程序没有打印“ R”,所以程序打印了“ not”。这表示剩余距离大于停止距离,实际上我正在检查剩余距离值,并且该值小于停止距离。
if (HaveReachedDestination ())
{
if (npc.myNavMeshAgent.drawGizmos)
{
Debug.Log ("reach");
}
if ((nextWayPoint + 1) == npc.waypoints.Length)
{
nextWayPoint = 0;
}
else
{
nextWayPoint = (nextWayPoint + 1) % npc.waypoints.Length;
if (npc.myNavMeshAgent.drawGizmos)
{
Debug.Log ("waypoint plus 1");
}
}
}
private bool HaveReachedDestination()
{
if (npc.myNavMeshAgent.drawGizmos)
{
Debug.Log ("remainDistance : " + npc.myNavMeshAgent.remainingDistance.ToString());
Debug.Log ("stoppingDistance : " + npc.myNavMeshAgent.stoppingDistance.ToString());
}
if (npc.myNavMeshAgent.remainingDistance <= npc.myNavMeshAgent.stoppingDistance)
{
if (npc.myNavMeshAgent.drawGizmos)
{
Debug.Log ("R");
}
StopWalking ();
npc.myNavMeshAgent.m_hasPath = false;
return true;
}
else
{
if (npc.myNavMeshAgent.drawGizmos)
{
Debug.Log ("not");
}
KeepWalking ();
return false;
}
}
控制台屏幕截图:
带有一个NPC的控制台屏幕截图:
具有多个NPC的控制台屏幕截图