返回

Unity 导航寻路:巧用 Off-Mesh Link 打通场景孤岛

前端

Off-Mesh Link: 打通 Unity 导航网格孤岛

在 3D 游戏中,为了让角色能够在场景中自由移动,开发者需要创建导航网格。然而,有时场景中会存在一些静态几何体,这些几何体可能会阻碍角色的移动,形成所谓的 "孤岛"。此时,就需要用到 Off-Mesh Link 来解决这个问题。

什么是 Off-Mesh Link?

Off-Mesh Link 是一种特殊的寻路组件,它可以连接两个不相连的导航网格。它允许角色在不经过导航网格的情况下,直接从一个点移动到另一个点。这对于创建复杂多层次场景非常有用,例如建筑物内部或具有许多悬浮平台的环境。

如何使用 Off-Mesh Link?

要使用 Off-Mesh Link,你需要在场景中创建两个空物体,并将它们放置在要连接的导航网格的端点上。然后,将 Off-Mesh Link 组件添加到其中一个空物体上。在 Off-Mesh Link 的属性中,指定要连接的另一个空物体。

在 Unity 中,Off-Mesh Link 有两种类型:"Start End" 和 "Jump Across Nav Mesh Link"。

  • Start End: 用于连接两个不在同一导航网格上的端点。
  • Jump Across Nav Mesh Link: 用于连接两个在同一导航网格上但被障碍物分隔的端点。

设置 Off-Mesh Link 属性

  • Start Transform: 要连接的第一个空物体。
  • End Transform: 要连接的第二个空物体。
  • Radius: Off-Mesh Link 的半径。它定义了角色可以在连接点周围移动的距离。
  • Bi-Directional: 如果选中,则 Off-Mesh Link 可以双向使用。
  • Auto Update Positions: 如果选中,则当场景中的几何体移动或改变时,Off-Mesh Link 的位置将自动更新。

示例场景

让我们创建一个简单的场景来演示 Off-Mesh Link 的用法。在这个场景中,我们将创建一个两层的建筑物,一楼和二楼之间由一个楼梯连接。

  1. 创建一个新的 Unity 项目。
  2. 导入 Navigation 工具包。
  3. 创建一个新的场景。
  4. 在场景中创建两个空物体,并将其命名为 "FirstFloor" 和 "SecondFloor"。
  5. 将它们放置在建筑物的一楼和二楼。
  6. 将 Off-Mesh Link 组件添加到 "FirstFloor" 空物体。
  7. 在 Off-Mesh Link 的属性中,指定 "SecondFloor" 空物体作为 End Transform。

现在,当一个角色尝试从一楼移动到二楼时,它将通过 Off-Mesh Link 直接移动,而无需经过楼梯。

结论

Off-Mesh Link 是 Unity 导航寻路中一个强大的工具,它可以让你连接不相连的导航网格,从而创造更加灵活和动态的场景。通过巧妙地使用 Off-Mesh Link,你可以创建复杂而身临其境的 3D 游戏世界,让你的角色自由探索每一个角落。