导航网格(也称为 Navmesh)是世界几何体的简化表示,被游戏代理用来进行全球导航。通常,代理有一个目标或一个目的地,它试图找到通往该目标或目的地的路径,然后沿着该路径导航到该目标。这个过程称为寻路。请注意,导航网格 (Navmesh) 生成(或烘培)通常由游戏开发者在编辑器内完成,而寻路通常由代理在运行时根据该导航网格完成。
在复杂的游戏世界中,可以有许多代理、动态障碍物和在世界不同地区不断变化的可达程度。代理需要对这些变化作出动态反应。代理的寻路任务可能被一些事物打断或受到其影响,如避免与其他角色发生碰撞、日益改变的地形特征、物理障碍物(比如关门)和实际目的地的更新。
以下示例简单介绍了如何设置导航网格以及代理如何在导航网格上寻路:
在关卡中创建一些几何体,例如平面 (Plane) 或地形 (Terrain)。
在检视器窗口 (Inspector Window) 的右上角点击静态 (Static),确保该几何体标记为导航静态 (Navigation Static)
打开“导航网格 (Navigation Mesh)” 窗口(窗口 (Window)->导航 (Navigation))。
烘焙网格。这样将产生所有导航静态几何体的导航网格。
在场景中创建一些动态几何体(比如角色)。
通过向场景中的动态几何体添加 NavMeshAgent 组件,来创建一个代理(或多个代理)。
在附加到代理的脚本中为代理提供一个目的地(通过设置目的地属