返回介绍

导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))

发布于 2021-06-19 18:03:20 字数 1633 浏览 900 评论 0 收藏 0

导航网格(也称为 Navmesh)是世界几何体的简化表示,被游戏代理用来进行全球导航。通常,代理有一个目标或一个目的地,它试图找到通往该目标或目的地的路径,然后沿着该路径导航到该目标。这个过程称为寻路。请注意,导航网格 (Navmesh) 生成(或烘培)通常由游戏开发者在编辑器内完成,而寻路通常由代理在运行时根据该导航网格完成。

在复杂的游戏世界中,可以有许多代理、动态障碍物和在世界不同地区不断变化的可达程度。代理需要对这些变化作出动态反应。代理的寻路任务可能被一些事物打断或受到其影响,如避免与其他角色发生碰撞、日益改变的地形特征、物理障碍物(比如关门)和实际目的地的更新。

以下示例简单介绍了如何设置导航网格以及代理如何在导航网格上寻路:

  • 在关卡中创建一些几何体,例如平面 (Plane) 或地形 (Terrain)。
  • 在检视器窗口 (Inspector Window) 的右上角点击静态 (Static),确保该几何体标记为导航静态 (Navigation Static)
  • 打开“导航网格 (Navigation Mesh)” 窗口(窗口 (Window)->导航 (Navigation))。
  • 烘焙网格。这样将产生所有导航静态几何体的导航网格。
  • 在场景中创建一些动态几何体(比如角色)。
  • 通过向场景中的动态几何体添加 NavMeshAgent 组件,来创建一个代理(或多个代理)。
  • 在附加到代理的脚本中为代理提供 一个目的地(通过设置目的地属性)。
  • 按播放并观看神奇的魔力。

请注意,还可以定义定制 NavMesh 层。如需让代理更轻松地通过环境中的某些地方(相对于其他地方),则需要这些层。对于没有直接连接的网格部分,可以创建分离网格链接。

自动分离网格链接

导航网格几何体也可以予以标记以自动生成分离网格链接,如下所示:

标记几何体,以自动生成分离网格链接

以这种方式标记的几何体将在导航网格烘焙过程中予以检查,以创建其他导航网格 (Navmesh) 几何体的链接。这样,我们就可以控制每个游戏对象 (GameObject) 的自动生成过程。在烘焙过程中是否自动生成分离网格链接也取决于导航烘焙 (Navigation Bake) 设置中的跳跃距离 (Jump distance) 和下落高度 (Drop height) 属性。

指定给自动生成分离网格链接的 NavMeshLayer 是内置层跳跃 (Jump)。这样就允许全局控制自动生成分离网格链接成本(请参阅 Navmesh 层)。

请注意,也可以手动创建分离网格链接(详见此处)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文