BStarFindPath
欢迎了解BStar寻路算法
BStar算法归于人工智能或人工生命一类,是让对象呈现出拥有生命一般,朝着目标点移动并绕开障碍物,如果目标点被障碍物包围则停留在附近点。
想象空间
可以将BStar寻路想象成一个朝目标前进的贪吃蛇,如果遇到障碍就会分裂成2条贪吃蛇,一左一右绕开障碍,绕开障碍后继续向目标点移动,只要有一条蛇到达目标点即寻路结束。
这里我们需要三类蛇来满足我们的设计需求:
- 自由蛇(向目标点前进,遇到障碍会分裂成左转蛇和右转蛇)
- 左转蛇(只考虑绕着障碍左转,一直到绕出障碍变成自由蛇或者遇到已经绕过的路消失)
- 右转蛇(只考虑绕着障碍右转,一直到绕出障碍变成自由蛇或者遇到已经绕过的路消失)
可以想象在复杂的地形下,会出现很多蛇,最终先到终点的蛇就是我们要找的路径。
下图只有自由蛇 (2N - 10N) N代表自由蛇

下图开始是自由蛇(2N-5N)撞墙后变成了左转蛇和右转蛇绕开障碍,绕开后变成自由蛇奔向终点。

BStar寻路的优势
目标点在封闭空间内时,BStar效率优势明显

目标点在需要绕路的空间内时,BStar效率优势明显

本文介绍了BStar寻路算法在Unity中的应用,通过将算法类比为贪吃蛇来理解其原理。文章讨论了BStar算法在处理目标在封闭空间和需要绕路情况时的优势,同时也指出其贴墙行走和缺乏最优解的问题。针对这些问题,提出了路径平滑处理和两级寻路策略的优化方案,并展示了在大规模地图中高效的空间优化方法。

1219

被折叠的 条评论
为什么被折叠?



