1.导入A Pathfinding Project Pro 4.2.17.unitypackage
2.先创建一个Panel,让其坐标位于(0,0,0)上,然后x轴、z轴扩大10倍,y轴不变
3.再创建几个Cube,设置成障碍物
4.设置layer
新增两个layer
将Planel的layer设置成Ground
将创建的一个layer障碍物设置成Obstacle
5.添加寻路网格
创建一个新的GameObject,命名为“A*”,向其添加“AstarPath”组件
(选中该物体-》菜单栏->Components->Pathfinding->Pathfinder)。
6.设置Grid Graph
Width跟Depth设置网格的长度和宽度,由于跟Unity的单位是一样的,设置成100*100就行了
NodeSize节点的宽度,设置成1就行了
MaxClimb可以爬升的最大高度
MaxSlope可以爬升的最大斜度
Erosion iterations 这个就是障碍物避让的设置,如果寻路的时候穿过障碍物的话就可以把这个设置大一些
高度测试:
为了把寻路的node放置到场景中的正确位置,一般使用从node向下发射一个射线来进行检测,寻路node会被放置到碰撞点的位置。我们将mask设置为Ground,因为只希望寻路节点与Ground进行检测。
碰撞测试:
当寻路节点被放置之后,它就会被用来检测是否可行走,一般可以使用sphere,capsule或ray来进行碰撞检测。一般Capsule会使用和AI对象一样的半径和高度来进行碰撞。为了让AI对象和障碍物有一些边缘,这里将Capsule的半径设置为2.另外将碰撞检测的layer设置为Obstacles,因为不想让地面成为障碍。
好了,都准备好了,点击底部的Scan,我们就可以看到grid Graph的生成了,可以再编辑窗口中看到辅助线显示的寻路网格,包括了可寻路的区域和障碍区域。
7.添加AI
创建Capsule
装在组件seeker、 AIpath、 AIDestinationSetter、 Character Controller
8.指定目标物体
在AIDestinationSetter组件,有一个名为“Target”的字段,创建“Target”GameObject分配给这个字段。
9.平滑
给对象添加上这个组件
菜单栏–>Components–>Pathfinding–>Modifiers–>Simple Smooth
现在再按下播放,路径应该看上去更流畅。