2016-10-22 6 views
0

私は、画面の端にエッジグリッパーを作成し、それにインパルス力でcircleCollider2dを付けた楕円を起動する非常に簡単なプログラムを作成しました。Unity rigidbody2dの速度は、1軸に対してランダムに0に収束します。

バウンシーが1.0(無限バウンス)に設定された弾力性のある素材を使用するように、すべてのコライダー(エッジとサークル)を設定しました。

私は何が起こることは、オブジェクトが斜めの形で動き始めますが、十分に与えられたということです

this.GetComponent<Rigidbody2D>().AddForce (new Vector2 (100, 100), ForceMode2D.Impulse); 

例えば時間をかけて、速度の軸の1が0に収束する奇妙な問題を抱えていますバウンスすると、速度は(100,0)と(-100,0)の間で交互に変化します。これは、x軸が0になる場合、またはY軸が0になる場合に発生します。開始時にどちらが高くなったかによって異なります。

なぜこれが起こっているのかわかりません。基本的に視覚的に、オブジェクトはバウンドし始めます。約10回のバウンス後、もう一方の軸を保持するのではなく、直線で前後にバウンスします。なぜそれがそれをするのか分かりません。私には制約がありません(私はZ軸の回転を制限しようとしましたが、何もしませんでした)。

すべてのエッジコライダーとサークルコライダーのバウンシーが1.0に設定されています。 剛体の質量は1であり、すべての抗力係数も0に設定されています。 無限に跳ねるだけの意図です。

答えて

0

私は回転の振る舞いを観察すると、なぜこれが起こっているのか分かりましたので、ここで自分の質問に答えます。この事件の摩擦が毎回同じシミュレーションをもたらしていたことから、摩擦がこれに手を加えることは私には全くありませんでした。

バウンスを1にすると同時に、フリクションを0にする必要があります。

関連する問題