从关卡几何体创建导航网格的过程称为导航网格烘焙 (NavMesh Baking)。该过程收集所有标记为 Navigation Static 的游戏对象的渲染网格和地形,然后处理它们以创建近似于关卡的可行走表面的导航网格。
在 Unity 中,导航网格生成方式是在 Navigation 窗口(菜单:__Window__ > AI > __Navigation__)中进行处理的。
为场景构建导航网格可以通过 4 个快速步骤完成:
每当 Navigation 窗口打开且可见时,生成的导航网格便会在场景中显示为底层关卡几何体上的蓝色覆盖层。
您可能已经在上面的图片中注意到,生成的导航网格中的可行走区域显示为缩小状态。导航网格表示代理中心可进行移动的区域。从概念上讲,无论将代理视为缩小的导航网格上的点还是全尺寸的导航网格上的圆都无关紧要,因为这两者是等效的。但是,解释为点有助于提高运行时效率,并可让设计人员立即看到代理是否可以挤过间隙而不用担心代理半径问题。
Another thing to keep in mind is that the NavMesh is an approximation of the walkable surface. This can be seen for example in the stairs which are represented as a flat surface, while the source surface has steps. This is done in order to keep the NavMesh data size small. The side effect of the approximation is that sometimes you will need to have a little extra space in your level geometry to allow the agent to pass through any tight spots.
烘焙完成后,您将在一个与导航网格所属场景同名的文件夹中找到导航网格资源文件。例如,如果在 Assets 文件夹中有一个名为 First Level 的场景,则导航网格将位于 Assets > First Level > NavMesh.asset。
除了如上所述在 Navigation 窗口中将对象标记为 Navigation Static 之外,还可以使用 Inspector 顶部的 Static 菜单。如果刚好没有打开 Navigation 窗口,这会很方便。