在使用最新版A*寻路插件时发现一些问题,本篇记录一下:
使用的A*寻路插件是 4.2.15 Pro版本
根据插件自带的文档有个简单的了解 之后在操作中有些小问题统一归纳一下:
Graph
Graph一共是分为五种,GridGraph,Layered Grid Graph ,NavmeshGraph ,PointGraph 以及Pro版本特有的RecastGraph。
五种Graph的区别从名称中就能了解,在项目中使用的是NavmeshGraph,也试用过其他几种,但是NavmeshGraph对于项目是最为贴切的。
参数大致相同,详细的解释可以看插件里面的Document,这里做一些通用的操作性的介绍:
使用
(以Grid Graph为例)
根据文档可以有个初步了解,首先照常创建一个空物体,在该物体上添加 AstarPath 脚本,然后调整其范围和大小,官方建议是将右边红框内的轴心点设置为左下角,Width 和 Depth 可行根据路径范围大小设置,但是最大好像就是1024了(知道如何更大的大佬请不吝赐教)Node size可以理解为每一个节点之间的距离 ,调整好这些之后设置一下Layer
![]()
collider type建议使用Sphere 具体看项目情况,Mask这边一直搞混淆了概念,一直以为是选中的layer是遮罩忽略掉的,实际上时选中的layer才是不被遮罩的层级。
下一步处理路径,将路径物体的Layer设置之后再Mask中选中。
添加障碍物的地方也是需要设置 Layer 之后进行烘焙。
点击烘培。
=========================================分割线========================================
这里单独介绍NavmeshGraph 这个和其他的不太一样 ,和Unity官方的 NavMeshAgent 差不多 设置好参数和Mesh之后进行烘培就OK
另外说下Pro版本独有的RecastGraph 根据文档介绍 这个是会自行烘培路径 也就是设置好Layer和Size之后直接烘培出来的路径是比较好的。
建议使用RecastGraph (有条件的强烈推荐)
设置AI
需要添加的组件
- Character Controller组件
- Seeker组件
- AI Destination Setter组件
三个基本组件,之后让AI动起来的方式有两种,一种是参照文档里面的东西进行自写(百度也有很多自行编写的脚本),另外一种是使用插件自带脚本(一共三种Rich AI ,AI Path ,AILerp),根据需要自选,
注:AIPath脚本可以用于任何图形,而RichAI主要是基于navmesh的图形。AIPath和RichAI脚本松散地遵循路径,而AILerp脚本使用插值沿着路径非常精确地移动
到此基本完成,但是路径线条都是直线不平滑 行走效果不好,在添加一个平滑脚本
FunnelModifier
官方翻译:
(最直接的一个是简单的平滑修改器,可以在菜单栏找到- >组件- >寻路- >修改器- >简单平滑。把它添加到我们的AI中。这个修改器要做的是,对路径进行多次细分,直到每个分段都小于最大分段长度变量。然后它会通过使点彼此靠近来平滑路径。这个修改器有很多设置,我不会在这里一一介绍。有关每个变量的更多信息,请参见SimpleSmoothModifier文档。)
到此基本使用完成 后续的话有什么新的东西会继续补充,在项目中我我使用的是 RecastGraph ,RichAI ,以及平滑处理。
Over!