车轮对车辆运动的影响

时间:2013-04-06 17:04:22

标签: unity3d unityscript

我是Unity的新手。如果我按下键盘上的“向上”按钮,我想这辆车的车轮(气缸)会转过来。 这是我写的代码:

var forwardSpeed: float = 3;

function Start () {

}

function Update () {
    var forwardMoveAmount = Input.GetAxis("Vertical")*forwardSpeed;
    transform.Rotate(0, forwardMoveAmount, 0);
}

行。车轮转过来,但我的车还在同一个地方。我该怎么做才能搬这辆车? enter image description here

PS:你能解释一下,当我使用Y轴时,为什么这个圆柱体正确旋转?它应该是z。

3 个答案:

答案 0 :(得分:2)

对于基于物理的车轮,您可能需要车轮碰撞器。它们的使用在这里有很好的记录:

http://docs.unity3d.com/Documentation/Components/class-WheelCollider.html

答案 1 :(得分:1)

您将距离标量应用于旋转功能,而不是平移(移动)对象。

transform.Rotate会旋转对象。

transform.Translate会移动对象。

在桌面上挑选一个物体。如果将其旋转90度两次,它将旋转180度但仍在同一位置。现在想象一下,每当你旋转那个物体时,你就会朝着它面向的方向移动几英寸。经过4个循环后,物体将完成360度的完整电路。

在代码中表示:

var forwardSpeed: float = 3; // Tweak me
var turnAngle:    float = 1; // Tweak me

function Start () {

}

function Update () {
    // Rotate first
    transform.Rotate(0, Vector3.right * turnAngle, 0);
    // Move forward along the rotated axis
    transform.Translate(0, Vector3.forward * forwardSpeed, 0);
}

答案 2 :(得分:0)

您还需要同时使用父车对象上的transform.positiontransform.Translate()或类似内容明确地移动汽车。