我在地板上有一个NavMesh(有一些山丘和东西),我的"士兵站在" (我复制了一个桌面战争游戏)有NavMeshAgent。一切工作都很顺利,但问题是,当代理上坡时,它保持垂直,我猜这对一个人来说是好的,但是对于一个坦克没有任何意义..一半感谢漂浮在空中而另一半在山里面
这是一个例子:
有没有办法确保gameObject与NavMesh相切?垂直轴应遵循代理中心点的NavMesh法线或其他东西。说实话,我想我不是第一个注意到的人,但我无法找到解决方案
答案 0 :(得分:0)
这看起来像是一种黑客攻击的方式,但你可以从你的机器人光线投射到navmesh上,然后你可以使用rayhit的法线旋转你的坦克/机器人。
Raycasting到navmesh:https://answers.unity.com/questions/325929/raycasting-on-navmesh.html
然后使用它根据命中表面的法线方向旋转机器人:
tranform.rotation = Quaternion.FromToRotation(Vector3.up, rayhit.normal);
这是一个好的基础;此外,您可以开始添加更多的光线投射,以获得更多的附加/准确旋转。例如,如果你的机器人上有4个轮胎,那么每条射线就会被射出。