UE4是否实现了导航块标志位(flags)功能

Areas(区域)一般用来定义移动代价的。代价影响寻路。举个例子,穿越被标记为沼泽的区域时的代价花费可能比穿越标记为草地的区域的代价要高。
Flags(标志位)可以用来控制一个节点的可行走属性。举个例子,一个作为’门’的多边形,在门关闭的时候,可以给这个多边形设置一个特殊的标志位,以表示它是不可通过的。或者设置一个特殊的标志位,只允许特定类型的角色通过。
UE4的导航底层recastnavigation是支持flags和areas功能的
感觉UE4的NavModifierVolume组件只实现了Areas的功能,我想知道Flags功能是否也实现了,如果没有,以后的UE4版本会不会支持?

简单的结论似乎是并未实现。

详细展开讨论一下,

您说的 Areas 和 Flags 我理解应该是指 recast 里面的 rcPolyMesh::areas 和 rcPolyMesh::flags,这两个 recast 的功能 UE4 我这边看下来 似乎 都没有直接用到。 UE4 自己定义了 NavModifierVolume 实现了类似 Areas 功能,但这部分是和 UE4 的 AI 以及寻路密切整合,并不是对 rcPolyMesh::areas 的直接使用,也没有用到 rcPolyMesh::flags 的部分。

问题中寻求的 flags 功能会不会实现,如果理解为对 recast 中的这个 flags 的支持,可能并不会直接支持。但 UE4 本身对寻路数据的动态变化,比如一个会开关的门,是支持的。

  • 如果你寻求在 UE4 中实现 area 或者 flag 的功能,UE4 的本身的寻路系统应该可以支持,比如你已经看到的配合 NavModiferVolume 和 自定义的 Area 来实现不同的类型,或者利用实时的寻路数据重新 navmesh 的结果来达到动态使用的目的
  • 如果你寻求 UE4 的寻路数据导出和第三方使用 recast 软件的整合,这点可能就没有那么好做了……

我这边看到的似乎是这个情况,欢迎进一步讨论~