2

Unity 4.0.0 に問題があります。AngryBots プロジェクトを再生するとき、または単純なウォーキング スクリプトで独自の char を作成するときでさえ、ボタンを押さなくても自動的にウォーキングします。

Unity をアンインストールしようとしました。Unity の古いバージョンで試しました。レジストリからも削除しましたが、それでも同じ動作が得られます。なぜそれが起こるのですか?それはバグですか、それとも何か間違っていますか?

var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;

private var moveDirection = Vector3.zero;
private var grounded : boolean = false;

function FixedUpdate() {
    if (grounded) {
        // We are grounded, so recalculate movedirection directly from axes
        moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, 0);
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;

        if (Input.GetButton ("Jump")) {
            moveDirection.y = jumpSpeed;
        }
    } // Apply gravity

    moveDirection.y -= gravity * Time.deltaTime;

    // Move the controller
    var controller : CharacterController = GetComponent(CharacterController);
    var flags = controller.Move(moveDirection * Time.deltaTime);
    grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}

@script RequireComponent(CharacterController)

私はすべての歩行文字にこのスクリプトを使用していますが、動作しますが、現在は自動的に歩行しています。

4

3 に答える 3

1

問題は、何かが移動軸の入力を提供していることです。

通常、ジョイスティックなどの別のデバイスになります。最初のステップは、テストする必要がある可能性のある他の入力デバイスをすべて取り外すことです (問題を特定し、必要に応じて修正します)。

それを引き起こしている可能性のある別のこと:同じ問題がありましたが、他の入力デバイスが接続されていませんでした。VJoy仮想ジョイスティック(FreetrackNoIRの一部としてインストール)と呼ばれるドライバーが、各軸の移動軸の値を1と-1に設定していることを発見しました、したがって、同じ問題が発生します。

このドライバー (コントロール パネル、デバイス マネージャー、ヒューマン インターフェイス デバイス) を無効にすると、問題が解決しました。

幸運を。

于 2013-10-15T14:54:36.943 に答える
1

「アニメーター」コンポーネントではなく、「アニメーション」コンポーネントを使用する必要があります。(「コンポーネントの追加」、「その他」、および「アニメーション」をクリックして、これを割り当てることができます。これには、必要な「自動再生」ボタンが含まれます。

于 2014-08-18T15:11:09.810 に答える