导航网格烘焙

一旦标记完导航网格 (Navmesh) 几何体和层之后,就可以烘焙导航网格几何体了。

在导航 (Navigation) 窗口中(窗口 (Window)->导航 (Navigation)),转到烘焙 (Bake) 选项卡(右上角),然后点击“烘焙”按钮(右下角)。

导航烘焙窗口

以下是会影响导航网格 (Navmesh) 烘焙的属性:

半径 (Radius)“典型”代理的半径(最好是最小值)。
高度 (Height)“典型”代理的高度(角色通过所需的“空隙”)。
最大坡度 (Max Slope)坡度大于此值的所有表面会予以丢弃。
台阶高度 (Step height)高度差低于台阶高度时,则认为连接至导航网格区域。
下落高度 (Drop height)如果该属性值是正数,则将为高度差小于该值的相邻导航网格表面放置分离网格链接。
跳跃距离 (Jump distance)如果该属性值是正数,则将为水平距离小于该值的相邻导航网格表面放置分离网格链接。
高级 (Advanced)
最小区域面积 (Min region area)面积小于该阈值的区域将予以丢弃。
宽度误差 (Width inaccuracy) %容许的宽度误差
高度误差 (Height inaccuracy) %容许的高度误差
高度网格 (Height mesh)如果勾选此选项,原始高度信息会存储起来。这会对速度和内存性能造成一定影响。

请注意,烘焙的导航网格是场景的一部分,代理可以通过该导航网格。要删除导航网格,在烘焙 (Bake) 选项卡中点击清除 (Clear)

实现细节

烘焙导航网格 (Navmesh) 时,它会映射到 XZ 平面中的方格中。可视化方格时,其边框被视为导航网格 (Navmesh) 上的亮蓝色轴对齐线。Unity 在一个场景中最多支持 1024 个方格,每个方格用 1000x100 个体素表示。如果您打算让代理在大区域中导航,请注意导航网格 (Navmesh) 的大小和最终的网格数。

具有亮蓝色轴对齐线的导航网格显示方格标度

半径 (Radius) 的默认设置为 0.5,宽度误差 (Width Inaccuracy) 的默认设置为0.16666667 (16.666667%)。默认设置的方格边长可计算为:

1000 * (2*半径) * 宽度误差 = 1000 * (2*0.5) * 0.16666667 = 166.66667

增加宽度误差 (Width Inaccuracy) 将允许容纳更大面积,但会降低导航网格 (Navmesh) 精度。

例如,如果您的网格有 32 x 32 个方格,则您将拥有 1024 个方格。这意味着,如果您拥有想与导航网格 (Navmesh) 配合使用的真正巨大地形,按照默认设置,该地形面积不得超过 5.333 乘以 5.333 千米(32 * 166.66667 米

(返回导航和寻路

Page last updated: 2013-06-25