如何快速检查网格点之间是否存在任何路径?

时间:2015-01-05 19:22:09

标签: c# unity3d a-star

我在游戏中使用了A-star algorythm,如果没有路径,它会开始检查太多节点(网格很大)所以,正如我所看到的,我需要检查是否存在任何路径第一。不要找到实际路径,只需检查它是否存在。我能想出的唯一的例子是递归地填充bool矩阵。应该有更好的方法,对吧?

可选问题:如果目标单元格不存在路径,如何找到可访问的单元格(路径确实存在)且最接近原始目标的单元格?

1 个答案:

答案 0 :(得分:3)

A *就是这样......所以没有明显更好的方法(文章的链接可以在http://en.wikipedia.org/wiki/Shortest_path_problem中找到)

如果您可以进行预处理,则可以为所有点着色,以便可以到达的对颜色相同。如果你得到2分,如果颜色不同,那么就没有路径。

要找到关闭点,您可以测量具有相同颜色的点的半径,然后开始找到达到该半径的路径。