我目前正在尝试在Unity 3D中运行单独的线程来使用A *计算长路径。我确实有线程运行,它不使用统一API,所以它不会导致任何冲突,但由于某种原因它似乎停止,我无法弄清楚为什么。
while(!_threadKilled)
{
if(_flockers.Count > 0)//still flockers left to calculate a path for
{
Flocking flocking = _flockers.Peek();
float x = _xPositions.Peek();
float z = _zPositions.Peek();
_flockers.Dequeue();
_xPositions.Dequeue();
_zPositions.Dequeue();
flocking.FollowNewPath(_game.Pathfinding.CalculatePath(x,z,flocking.TargetTile));
Thread.Sleep(500);
}
}
我在更新功能中不断打印出线程的状态。当我在列表中添加一个单元时,它可以正常工作。当我向列表中添加多个单元时,线程似乎停止了。任何人都知道发生了什么事?