Skip to content

简介

网格寻路障碍(Navigation Mesh Obstacle)组件(Component)用于定义 AI 代理(AI Agent)在当前场景导航时应避免的移动障碍物。

组件逻辑

需要使用 网格寻路障碍(Navigation Mesh Obstacle)组件(Component)将场景中的 游戏对象(Game Object)定义为网格寻路障碍。

【Nav_Mesh_Agent001.png】

网格寻路障碍可以通过 阻碍(Obstructing)和 雕刻(Carving)两种方式影响 AI 代理(AI Agent)在运行过程中的导航线路。

  • 阻碍(Obstructing),障碍物的默认行为与 碰撞器(Collider)类似。 AI 代理尝试避免与障碍物发生碰撞,当靠近时,AI 代理会与障碍物发生碰撞的效果。值得注意的是, AI 代理可能无法在充满此种类型的障碍物的环境中找到能到达目标位置的路径。例如移动的车辆或玩家角色等不断移动的障碍物比较适合成为阻碍。

【Nav_Mesh_Agent002.mp4】

当 AI 代理被网格寻路障碍的阻碍方式影响,会发生碰撞效果。

  • 雕刻(Carving),障碍物会在静止状态下在 导航网格(Navigation Mesh)中雕刻一个洞。当障碍物在移动状态时,障碍物与阻碍方式无异。当障碍物在导航网格中挖出一个洞时,AI 代理躲避障碍物并找到其他路线。

【Nav_Mesh_Agent003.mp4】

当 AI 代理被网格寻路障碍的雕刻方式影响,AI 代理会在障碍物雕刻导航网格时寻找其他到达目的地的路径。

创建方法

创建 网格寻路障碍(Navigation Mesh Obstacle)组件(Component)前,需要在 场景编辑器(Scene Editor)的 层级窗口(Hierarchy)或者 场景预览窗口(Scene)中,选中意向视为寻路障碍物的 游戏对象(Game Object)。

方法一:

选中对应的游戏对象后,在 检视窗口(Inspector)窗口中用鼠标左键点击 添加组件(Add Component)> 导航网格(Navigation Mesh)> 网格寻路障碍(Nav Mesh Obstacle) 进行创建。

【Nav_Mesh_Agent004.png】

方法二:

选中对应的 游戏对象 后,在 菜单栏(Menu Bar)中点击 组件(Component) > 导航网格(Navigation Mesh)> 网格寻路障碍(Nav Mesh Obstacle) 进行创建。

【Nav_Mesh_Agent005.png】

属性

网格寻路障碍(Navigation Mesh Obstacle)组件(Component)包含以下可配置属性:

【Nav_Mesh_Agent006.png】

名称描述
雕刻(Carve)设置网格寻路障碍通过什么方式影响 AI 代理(AI Agent)在运行过程中的导航线路。
True.png 勾选,网格寻路障碍通过 雕刻(Carving)方式影响 AI 代理(AI Agent)在运行过程中的导航线路,具体影响反馈请参阅 组件逻辑 小节。
False.png 不勾选,网格寻路障碍通过 阻碍(Obstructing)方式影响 AI 代理(AI Agent)在运行过程中的导航线路,具体影响反馈请参阅 组件逻辑 小节。
移动阈值(Move Threshold)此属性仅在障碍物为雕刻模式,即 雕刻(Carve)属性 勾选(True)时为可设置状态。
用于设置更新移动雕刻孔的阈值距离。当网格寻路障碍移动的距离超过此属性设置的距离时,SandMod 才会将其视为移动状态。
静止时间(Time To Stationary)此属性仅在障碍物为雕刻模式,即 雕刻(Carve)属性 勾选(True)时为可设置状态。
用于设置网格寻路障碍在移动状态后移动的距离持续小于移动阈值至被视为静止的时间间隔。属性值为布尔值类型,单位是秒。
仅在静止时雕刻(Carve Only Stationary)此属性仅在障碍物为雕刻模式,即 雕刻(Carve)属性 勾选(True)时为可设置状态。
用于设置网格寻路障碍雕刻导航网格的时机。
True.png 勾选,仅在障碍物为静止状态才会雕刻导航网格。
False.png 不勾选,障碍物为禁止状态和移动状态下都会逐帧雕刻导航网格。在这种模式下将会严重影响游戏运行的性能,请谨慎使用。
形状(Shape)指定障碍物几何形状。类似为场景中的 游戏对象(Game Object)选择碰撞盒,这里称为障碍物的检测框。
· 圆柱体(Cylinder),设置障碍物的检测框为圆柱体。
· 立方体(Box),设置障碍物的检测框为立方体。
中心(Center)障碍物检测框的几何中心相对于该游戏对象位置(Position)的偏移。
大小(Size)/ 范围(Extent)形状(Shape)属性值为 圆柱体(Cylinder)时此属性为 大小(Size)属性,如果 形状(Shape)属性值为 立方体(Box)时此属性为 范围(Extent)属性。
· 大小(Size),用于设置圆柱体检测框的尺寸,分别可设置圆柱体的 半径(Radius)和 高度(Height)。
· 范围(Extent),用于设置立方体检测框的尺寸,属性值是 三维向量(Vector 3)类型。