私は、画面の端にエッジグリッパーを作成し、それにインパルス力で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に設定されています。 無限に跳ねるだけの意図です。