轮子碰撞器Unity:添加扭矩后,车辆开始侧向移动。

6
我花了几个小时来尝试解决这个问题,搜索解决方案,但是没有成功。
我有一辆车,是一个卡丁车,所以没有悬挂(技术上有,但值接近于0,以模拟轮胎)。车辆有一个刚体附着,子对象包含4个轮碰撞器(和模型本身),如下图所示:

https://dl.dropboxusercontent.com/u/76599014/sxc/Clipboard01.jpg

为了测试,我添加了一个简短的脚本来使汽车移动。它在名为“gokart”的GameObject中:

public class carControler : MonoBehaviour {

public WheelCollider fr, fl, rr, rl;
public float performance = 50f;

void FixedUpdate () {
    throttle();
}

public void throttle() {

    this.rl.motorTorque = this.performance;
    this.rr.motorTorque = this.performance;
} }
发生的情况是:后轮按照预期开始旋转,但车辆开始缓慢侧移。运动速度取决于扭矩量(在这种情况下是轮子旋转)。没有向前的运动,所以这不是错误,当您站在平坦的表面上时,您会向两侧漂移的情况。

有什么想法吗?如果您需要一个运动的视频或GIF(我必须找出如何制作),我很乐意提供。

嗯,你确定物体的所有轴和车轮都指向前方吗?(蓝箭头表示正方向)在另一辆虚拟汽车上检查一下,并制作一个由盒子和圆柱形状组成的虚拟汽车,然后观察结果。如果问题是轴方向不正确,你需要改变它们的方向。 - Nick
2个回答

1

我认为你应该尝试在施加后轮电机扭矩的同时将前轮制动扭矩设置为 0。

public void throttle() {

this.rl.motorTorque = this.performance;
this.rr.motorTorque = this.performance;
this.fr.brakeTorque = 0f;
this.fl.brakeTorque = 0f;
} 

话虽如此,如果Rigidbody / wheelcollider没有正确设置,任何事情都可能出错。 Unity的轮子碰撞器设置可能很困难。 Unity在Unity 5中改变了物理效果,因此大多数文档已过时。

我发现Unity制作的这份短文档非常好:http://unity3d.com/profiles/unity3d/themes/unity/resources/downloads/beta/unity-5.0-user-guide.pdf

它突出了Unity 5所做的更改,在第5页末尾,您可以找到一个解释如何设置汽车的部分。 我在一个新的Unity项目中尝试过大约一个月前,它运行正常。 指示非常清晰,因此请尝试此教程,希望它能有所帮助。

问候


0

由于没有图片,我对情况并不完全确定,但根据您的描述,我的假设是您应该尝试增加侧向摩擦力,并根据您的喜好微调前向摩擦力。无论如何,您都必须增加侧向摩擦力,因为您正在制作卡丁车。据我所知,大多数街机式卡丁车不会漂移,并且与普通赛车的行为有很大不同。希望这能解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接