问题:

在寻路的时候,会遇到加入经由点和目标点的问题

我的解决思路:

先将所有的经由点根据玩家当前位置进行排序,得到一个距离玩家当前位置从近到远的排序列表,然后让玩家当前点寻路到最近的经由点,然后再根据这个经由点寻路到下一个经由点,最后寻路到目标点,但是出现了一个BUG。。。

BUG:

会出现只能寻一条路,下面的路不进行寻路的BUG,最后经过A*算法插件的源码阅读发现了Heuristic(启发式)类下面的heuristicScale参数,这是一个float类型的值:

/ / /
///启发式的尺度。
///如果使用小于1的值,路径查找器将搜索更多的节点(更慢)。
///如果使用0,寻径算法将简化为dijkstra算法。这相当于将设置为None。
///如果使用大于1的值,寻径(通常)会更快,因为它扩展了更少的节点,但路径可能不再是最优的(即最短的可能路径)。
///
///通常你应该把它保留为默认值1。

最后我将这个值设置成2,就可以同时寻找多条路径,问题解决了~
【Unity3D日常开发】A*插件的一些BUG记录_寻路