Unity 3D Nav Mesh Baking Didnt覆盖所有区域

时间:2016-03-13 05:17:52

标签: unity3d artificial-intelligence path-finding navmesh

我目前正致力于游戏项目的寻路部分。我有一个烘烤我的导航网的问题 - 它没有涵盖我想要走路的所有区域。

以下是问题的图片:

Screenshot

如何使用导航网覆盖整个区域,以便代理可以步行?

1 个答案:

答案 0 :(得分:1)

不幸的是,Unity的基于导航网格的导航系统只能用于与y轴对齐的地形 - 也就是说,世界的y轴用作向上矢量,并且地形的坡度使用它作为参考来计算。

仅将球形物体的顶部视为可行走的原因是,如果将y轴视为向上矢量,则该地形其余部分的斜率大于navmesh烘焙设置允许的斜率。 / p>

解决这个问题的唯一方法是编写自定义解决方案 - 但是,嘿,幸运的是not the first one to pose such a question。普遍接受的方法是使用A* algorithm和自定义启发式函数(基于网格的顶点)来计算到目的地的最短路径。

这里的a good tutorial on how to implement A* in Unity,它将让您了解基础知识,以便您可以了解如何将算法应用于自身包裹的地形。如果您不打算编写自己的解决方案,那么还有an existing A* asset for sale on the Unity Asset Store(免费版也可用),这被认为是对Unity自己的导航系统的坚实改进,并且可以适用于非垂直地形,如你的一些调整。

希望这有帮助!如果您有任何问题,请告诉我。