NavMesh简介
unity 中使用Navigation作为解决方案。
- 寻路(驱动一个游戏物体移动到目标位置上)

图上所有蓝色的区域为walkable可走的区域,NavMesh由多个多边形组成。
- Unity会自动检索场景对象附近的多边形网格,并将它们进行路线烘焙,并寻找出烘焙路线中的最短路径。
Navigation导航
- 为了实现导航首先需要创建一个场景,并烘焙
- 创建一个Plane并命令为NavMesh,并添加一个Cube改变形状作为它的子物体,进行场景搭建。

- 接着进行烘焙


- 烘焙过后Unity会自动为我们创建一个与改场景同名的文件夹用于保存NavMesh

Navigation Bake参数介绍

- Agent Radius:该参数代表场景中对象的烘焙通用宽度。(代理的避让半径。当代理作为障碍物时,其他代理不能从中穿过。)

-
如果增大这个参数带来的效果
- 增大前

- 增大后


-
Agent Height:垂直间隙空间的高度,当高度小于这个高度时,这个高度以下的多边形网格将不会被NavMesh烘焙。
Paste_Image.png
-
增大这个高度(具有垂直Mesh的多边形网格将不会被烘焙)

- Max Slope:可以进行烘焙的最大坡度

- 坡度大于45度时,则这个斜坡则不会被烘焙。

- Step Height:台阶高度,高度差小于0.4的将会被连接在一起


- Generated Off Mesh Links(分离网格组件,可以将两个网络进行连接)

-
Advance 参数,立体像素大小(与Agent Radius(游戏代理角色)相关,为Agent Radius的三分之一)
Paste_Image.png
-
最小区域

-
当独立面积小于2的时候不进行烘焙
-
Height Mesh

- 勾选时会对原来的高度进行运算,对内存和性能有影响
导航的实现
- 在场景中添加一个胶囊体作为角色,添加一个空物体作为Target。


- 为胶囊体添加一个Move脚本并将Target的Transform拖拽进去。


- 运行游戏Unity会自动计算最短路线,红色线为路径(深色为将会经过的NavMesh三角面)。

网友评论