0

私はUnityが初めてです。キーボードの「上」ボタンを押すと、この車の車輪 (シリンダー) が回転するようにしたいと考えています。これは私が書いたコードです:

var forwardSpeed: float = 3;

function Start () {

}

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

わかった。車輪は回っていますが、私の車はまだ同じ場所にあります。この車を動かすにはどうすればいいですか? ここに画像の説明を入力

PS: Y 軸を使用すると、なぜこの円柱が正しく回転するのか説明してもらえますか? z である必要があります。

4

3 に答える 3

2

物理ベースのホイールの場合、おそらくホイール コライダーが必要です。それらの使用法はここにかなりよく文書化されています:

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

于 2013-04-08T15:21:44.487 に答える
1

距離スカラーを回転関数に適用していて、オブジェクトを移動 (移動) していません。

transform.Rotateオブジェクトを回転させます。

transform.Translateオブジェクトを移動します。

机の上の物を選んでください。90 度を 2 回回転させると、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);
}
于 2013-04-06T17:17:46.813 に答える
0

transform.positionまた、おそらく、transform.Translate()、または親車オブジェクトで同様のものを使用して、車を同時に明示的に移動する必要があります。

于 2013-04-06T17:07:31.623 に答える