我在地板上有一个 NavMesh(有一些小山和一些东西),我的“士兵站”(我正在复制桌面战争游戏)有 NavMeshAgent。一切正常且顺利,但问题是当代理上坡时它保持垂直,我想这对一个人来说是可以的,但对于坦克来说没有任何意义.. 一半的感谢漂浮在空中,另一半在山里面
这是一个例子:
有什么方法可以确保 gameObject 与 NavMesh 相切?垂直轴应该遵循代理中心点的NavMesh法线或其他东西。老实说,我想我不是第一个注意到的人,但我无法找到解决方案
这似乎是一种 hack 方式,但您可以从机器人将光线投射到导航网格上,然后您可以使用 rayhit 的法线来旋转您的坦克/机器人。
光线投射到导航网格: https ://answers.unity.com/questions/325929/raycasting-on-navmesh.html
然后使用它根据击球面的法线方向旋转您的机器人:
tranform.rotation = Quaternion.FromToRotation(Vector3.up, rayhit.normal);
这是一个不错的起点;此外,您可以开始添加更多光线投射以获得更多附加/准确的旋转。例如,如果您的机器人上有 4 个轮胎,则每条射线都会从这些点发射。