障碍物
障碍物是放置在导航区域内的不可见对象,在寻路过程中会被绕过。
如果更改障碍物变换,则会自动重新计算路线,以避开障碍物。
可以将障碍物添加到场景中:
- 作为单个节点来指示在寻路过程中应避免的区域或节点。但是,如果更改节点的变换,则障碍物变换不会改变。
- 作为应绕过的节点的子节点。在这种情况下,障碍物的变换将与节点变换一起更改,并且始终会正确计算路线。
障碍分为3种类型:
- Obstacle Box是长方体形的障碍物。
- Obstacle Sphere是球形障碍物。
- Obstacle Capsule是一个胶囊形的障碍物。
您应根据在寻路过程中应绕过的节点的形式选择最合适的类型。
使用范例#
假设您需要添加一个节点,该节点会在每帧中更改其变换,并且在寻路过程中应绕过该节点。在这种情况下,您应该执行以下操作:
-
将所需的节点放置在将要计算路线的导航区域内。
放置在Navigation Sector内的长方体形状的ObjectMeshDynamic节点 - 将所需类型的障碍物添加到场景中,并将其位置与节点的位置结合起来。
-
设置障碍物所需的大小。
障碍箱和节点。 -
在World Hierarchy窗口中,将障碍物节点拖动到做个孩子所需节点的数量。
这将使得能够同时改变节点和障碍物的变换。您也可以执行通过代码。 - 现在你可以创建一条路线从脚本。节点转换更改时,将自动重新计算路线。
结果,将按以下方式计算路线(路线以白色突出显示):
绕过标记为障碍箱的节点的路线
也可以看看#
- 通过代码在有障碍物的导航区域内创建路线的例子
- 一组 C# Component Samples 例子中的一个 Navigation 例子
最新更新:
2023-06-23
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)