3


重力と衝突効果の影響を受けるオブジェクトがあります。X 軸で一定の速度を維持するにはどうすればよいですか?
私はそのようなものを持っています:

void Update () {        
     rigidbody.velocity = 5 * new Vector3(1f,0f,0f);
}
4

3 に答える 3

2

物理エンジンは、他の基本的なゲーム ロジックとは異なる間隔で更新されることに注意してください。

特に、 の状態はRigidbodyへの呼び出しごとに 1 回更新されるFixedUpdate()ため、物理エンジンの結果をオーバーライドしたい場合はFixedUpdate()、 ではなく独自の 内で実行することをお勧めしますUpdate()

于 2012-12-22T22:38:18.623 に答える
2

何があってもオブジェクトの速度を一定に保ちたい場合は、衝突や重力の影響を受けないようにする必要があります。この場合、rigidbody のプロパティで Kinematic チェックボックスをチェックする必要があります。このようにして、オブジェクトのトランスフォームをスクリプトから移動することができ、オブジェクトの位置は他の影響を受けません。

于 2012-12-23T17:23:15.563 に答える
1

誰もがすでにあなたに言ったことは別として、特定の方向(あなたの場合はX軸)で一定の速度を維持したい場合、より正しいコードは次のようになります:

void FixedUpdate () {
    // We need to keep the old y and z component if we want the object to still be affected by gravity and other things
    rigidbody.velocity = new Vector3(5.0f , rigidbody.velocity.y, rigidbody.velocity.z);
}
于 2015-12-22T21:36:57.660 に答える