0

ゲーム オブジェクトがトリガー ボリュームを通過した場合にその位置をリセットするスクリプトを作成しました。このスクリプトはほとんどの部分で機能するので、すばらしいことです。

ただし、問題のオブジェクトは、開始位置にリセットされた後も運動量を保持しています。

コメント行を追加しました。これにより、位置をリセットする前にオブジェクトから速度が削除されると考えました。そのような幸運はありません。

コメント行は、rigidbody コンポーネント (トリガー自体) を持たないオブジェクトの速度を制御しようとしているというエラーをスローします。

私は途方に暮れています。オブジェクト Ball の剛体に影響を与えるにはどうすればよいですか?

    #pragma strict

var Ball : GameObject;
var getStartPosition;

function Start () {
    yield WaitForSeconds (0.25);
    Ball = GameObject.Find("Ball");
    getStartPosition = Ball.GetComponent(startPosition).setStartPosition;
    Debug.Log("getStartPosition is set to: "+getStartPosition);
}

function Update () {

}

function OnTriggerEnter (Ball : Collider) {
        //Ball.rigidbody.AddForce(-rigidbody.velocity, ForceMode.VelocityChange);
        Ball.transform.position = getStartPosition;
}
4

1 に答える 1

0

RigidBodyコンポーネントはボールに属しているようです。-rigidbody.velocityトリガーの速度にアクセスしようとしています。Ball.rigidbody.velocity代わりに試してください。

ちなみに、力を加える代わりに、velocityangularVelocityの両方を単純にゼロに設定できると思います。RigidBody

于 2013-08-17T18:37:50.747 に答える