我们需要在场景中,布置多层导航,比如道路是一层,桥梁是一层。请问UE4如何设置多层导航
首先想到的是可以用编辑器的项目设置中开启 NavMesh 的 Supported Agent 来实现。但这里的问题就变成了,你们是如何来区分什么地方是道路,什么地方是桥梁。
我在最新的版本上试了一下 Support Agent,好象是有点 BUG。多个 Support Agent 设置后,同一个 NavMeshBoundsVolume 在 Build Path 之后会为 Agent 生辰对应的 RecastNavMesh-AgentName,每个 RecastNavMesh 属性里面都可以勾选是否要 Draw。
另外,刚才有一位同事也看到了这个问题,提供了另外一种方法,可以使用 NavArea 配合 NavModifierVolume 来工作。
其实无论是 NavModifierVolume+NavArea 还是 NavMeshBoundsVolume+Agent,最终的寻路数据都是和 AI 逻辑强关联的。我不是很肯定对你希望的数据导出是否有用。无论怎样你都要详细去跟一下这块相关的代码逻辑才能对你导出的数据格式有帮助。
这块我也要再多试一下,并不能讲解太多。我们源码也都在那里,最有效的方式是一边讨论一边自己跟代码。也许您自己看还比我看的更快一些 ![]()
非常感谢,至少我知道它是个BUG,明天我就从源码开始入手,查看为什么少生成一个RecastNavMesh。我们项目组还遇到一个问题,如果您有时间的话,帮忙回答一下,我们可能需要一个官方的解决方案吧。自己虽然也试了一下,但是感觉有很多问题。 https://answers.unrealengine.com/questions/454788/做mmorpg游戏进行关卡切换主角销毁的问题.html
那个 SupportAgent 只是个 Editor 显示的 BUG。我来详述一下流程:
- 打开编辑器,在编辑器的项目设置中填写你们希望的 Agent 信息。假设有 AgentA,AgentB,AgentC
- 在关卡中放置一个 NavMeshBoundsVolume
- 在该 NavMeshBoundsVolume 中确认 Support Agent 都勾选了三个 Agent
- Build Path
- 完成 BuildPath 后,你应该会看到在世界大纲视图中多了几个东西,分别是 RecastNavMesh-AgentA, RecastNavMesh-AgentB, RecastNavMesh-AgentC
- 分别选这几个 RecastNavMesh,他们都有各自的 enable draw。
- 这里我手上的版本发现一个bug是draw出来的颜色不是项目设置中设定的颜色。。。我要再确认一下。
当使用多个 NavMeshBoundsVolume 的时候,也可以对 Support Agent 做设置。但这个功能主要是为了在同一区域build出面想不通的AI的寻路数据,比如有些AI需要更宽的路,有些AI可以游泳等。那么就可以设计不同的Agent来获取同一区域表面不同的寻路数据信息。
Placehode Answer. Seems this thread is done with the comments.


