NavAgent与地形相切

问题描述 投票:0回答:1

我在地板上有一个NavMesh(有一些山丘和东西)和我的“士兵站”(我正在复制一个桌面战争游戏)有NavMeshAgent。一切工作都很顺利,但问题是,当代理上坡时,它保持垂直,我猜这对一个人来说是好的,但是对于一个坦克没有任何意义..一半感谢漂浮在空中而另一半在山里面

这是一个例子:

enter image description here

有没有办法确保gameObject与NavMesh相切?垂直轴应遵循代理中心点的NavMesh法线或其他东西。说实话,我想我不是第一个注意到的人,但我无法找到解决方案

unity3d navmesh
1个回答
0
投票

这看起来像是一种黑客攻击的方式,但你可以从机器人射线投射到navmesh,然后你可以使用rayhit的法线来旋转你的坦克/机器人。

Raycasting到navmesh:https://answers.unity.com/questions/325929/raycasting-on-navmesh.html

然后使用它根据命中曲面的法线方向旋转机器人:

tranform.rotation = Quaternion.FromToRotation(Vector3.up, rayhit.normal);

这是一个好的基础开始;此外,您可以开始添加更多的光线投射,以获得更多的附加/准确旋转。例如,如果您的机器人上有4个轮胎,则每个射线将从这些点开火。

© www.soinside.com 2019 - 2024. All rights reserved.