答案 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自己的导航系统的坚实改进,并且可以适用于非垂直地形,如你的一些调整。
希望这有帮助!如果您有任何问题,请告诉我。