我在地板上有一个NavMesh (有一些山丘和东西),我的“士兵站”(我正在复制一个桌面战争游戏)有NavMeshAgent。一切都很顺利,但问题是,当智能体上山时,它保持垂直,我猜这对一个人来说是可以的,但对于坦克来说就没有意义了。一半的感谢漂浮在空中,另一半在山里。
这是一个示例:

有没有办法确保gameObject与NavMesh相切?垂直轴应该沿着NavMesh在代理中心点或其他地方的法线。老实说,我猜我不是第一个注意到这一点的人,但我无法找到解决方案
发布于 2017-12-21 18:51:57
这看起来像是一种破解的方式,但你可以从你的机器人将光线投射到导航网格上,然后你可以使用光线命中的法线来旋转你的坦克/机器人。
光线投射到导航网格:https://answers.unity.com/questions/325929/raycasting-on-navmesh.html
然后使用此命令根据命中曲面的法线方向旋转机器人:
tranform.rotation = Quaternion.FromToRotation(Vector3.up, rayhit.normal);这是一个很好的基础;此外,你可以开始添加更多的光线投射,以获得更多的相加/精确的旋转。例如,如果你的机器人上有4个轮胎,每条射线都会从这些点发射。
https://stackoverflow.com/questions/47922249
复制相似问题