重力と衝突効果の影響を受けるオブジェクトがあります。X 軸で一定の速度を維持するにはどうすればよいですか?
私はそのようなものを持っています:
void Update () {
rigidbody.velocity = 5 * new Vector3(1f,0f,0f);
}
重力と衝突効果の影響を受けるオブジェクトがあります。X 軸で一定の速度を維持するにはどうすればよいですか?
私はそのようなものを持っています:
void Update () {
rigidbody.velocity = 5 * new Vector3(1f,0f,0f);
}
物理エンジンは、他の基本的なゲーム ロジックとは異なる間隔で更新されることに注意してください。
特に、 の状態はRigidbody
への呼び出しごとに 1 回更新されるFixedUpdate()
ため、物理エンジンの結果をオーバーライドしたい場合はFixedUpdate()
、 ではなく独自の 内で実行することをお勧めしますUpdate()
。
何があってもオブジェクトの速度を一定に保ちたい場合は、衝突や重力の影響を受けないようにする必要があります。この場合、rigidbody のプロパティで Kinematic チェックボックスをチェックする必要があります。このようにして、オブジェクトのトランスフォームをスクリプトから移動することができ、オブジェクトの位置は他の影響を受けません。
誰もがすでにあなたに言ったことは別として、特定の方向(あなたの場合は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);
}