问题遇到的现象和发生背景
陆泽西的《Unity3D高级编程-主程手记》一书中,A星寻路优化中有一个长距离导航方案,当寻路的两点距离很大,中间有很多障碍物时,可以把常用的路径寻路的计算量大部分转化为离线下计算,然后在这些常用的路径中确定导航点,有个两个疑问:
1、通过什么规则去判断哪些路径是常用的路径?
2、长路径上设置导航点,是通过什么规则来确定哪些点是导航点?
谢谢
陆泽西的《Unity3D高级编程-主程手记》一书中,A星寻路优化中有一个长距离导航方案,当寻路的两点距离很大,中间有很多障碍物时,可以把常用的路径寻路的计算量大部分转化为离线下计算,然后在这些常用的路径中确定导航点,有个两个疑问:
1、通过什么规则去判断哪些路径是常用的路径?
2、长路径上设置导航点,是通过什么规则来确定哪些点是导航点?
谢谢
这个长路径优化方案,实际上就是把长路径转化成多个短路径,所谓的常用路径,就是在之前的程序运行过程中得到的短路径,这些段路径会作为常用路径记录到文件中,等下次寻径的时候,如果有路径经过该短路径节点附近时,这部分路径就不需要重复计算了。这些短路径不是本次A星算法的计算结果,而是程序运行积累下来的常用路径。而所谓的导航点,就是这些段路径的连接点。
比如A-F的长路径,如果在之前的程序中已经有了A-B、E-F的路径,那么A-B和E-F这两段路径在本次寻径算法中就不需要重复计算了,只需要找到B-E之间的路径即可。
可以看一下下面的文章:
https://wenku.baidu.com/view/71e8f0fe6c1aff00bed5b9f3f90f76c660374c4e.html