最近看了一下Unity自带的NavMesh寻路组件,先说一下基本的使用:
首先先把AI Navgation的package包给安装上。
给场景地图添加上NavMeshSurface组件,然后进行烘焙,烘焙出对应的场景地图文件。
给移动物体添加对应的Nav MeshAgent组件,然后给玩家设置对应的目标就可以让移动物体寻路过去。:
属性说明:
Base Offset:对于挂载物体的偏移值。
Speed:寻路时的速度。
Angular Speed:拐弯时的速度。
Stopping Distance:对于到达目标点的停止距离。
Obstacle Avoidance: (避障设置,多个移动物体到一个目标点的设置)
Raius:间距,多个移动物体的间距。
Height:高度。
Quality:品质。
Priority:优先级。
当地图有两块有空隙与间断时,需要寻路能走过这个间断则添加NavMeshLink组件。(类似一座桥)
StartPoint:开始点。
EndPoint:结束点。
Width:宽度。
Bidirectional:是否双向通过。
当有动态物体没有被烘焙时,需要动态避障这个物体则需要给这个动态物体添加NavMeshObstacle组件。
对Agent Types的介绍:
Name:名字。
Radius:对障碍物的半径距离设置。
Height:高度,烘焙的高度。
Max Slope:最大烘焙的坡度。
如果有多条路可以通行,需要安装某条路通过,可以给路设置对应的Areas,然后给物体挂载NavMeshModifier组件进行Area Type的选择。
Cost:设置进行每条路所需要的花费。越大花费越多。