2016-03-13 46 views

回答

1

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

只有你的球形物体的顶部被认为是可行走的原因是因为如果你认为y轴是向上的矢量,那么其余的地形的斜率大于navmesh烘烤设置所允许的。

解决此问题的唯一方法是编写自定义解决方案 - 但嘿,幸运的是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自己的导航系统的一个可靠的改进,并且可以适用于非垂直地形,如你的一些调整。

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