车轮碰撞统一:在增加扭矩后,车辆开始侧向移动

Eri*_*utz 6 unity-game-engine

我真的杀了几个小时试图解决这个问题,谷歌搜索解决方案,但我不能.

我有一辆车,它是一个推车,所以没有悬架(技术上有,但值接近0,模拟轮胎).车辆附有一个刚体,子物体包含4个车轮碰撞器(以及模型本身),如下所示:

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

为了测试,我添加了一个简短的脚本来使车辆移动.它在GameObject中称为"gokart":

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;
} }
Run Code Online (Sandbox Code Playgroud)

会发生什么:后轮开始按预期旋转,但车辆开始慢慢向侧面移动.移动速度取决于扭矩量(在这种情况下是车轮旋转).有没有向前移动,所以这不是BUG,就是当你站在你是漂泊在两侧的平坦表面.

有任何想法吗?如果你需要一个视频或GIF(我必须弄清楚如何制作一个)这个动作,我很乐意提供一个.

mna*_*naa 1

我认为你应该尝试对前轮施加 0 制动扭矩,同时对后轮施加电机扭矩。

public void throttle() {

this.rl.motorTorque = this.performance;
this.rr.motorTorque = this.performance;
this.fr.brakeTorque = 0f;
this.fl.brakeTorque = 0f;
} 
Run Code Online (Sandbox Code Playgroud)

话虽这么说,如果刚体/车轮碰撞器设置不正确,任何事情都可能出错。Unity 的车轮碰撞器可能很难设置和使用。Unity 改变了 Unity 5 中的物理原理,因此大多数文档都已过时。

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

它突出显示了对 unity 5 所做的更改,在第 5 页的末尾,您可以找到解释如何设置汽车的部分。大约一个月前,我在一个新的统一项目中尝试过它,并且它有效。说明很清楚,所以尝试一下本教程,我希望它会有所帮助。

问候