Rigidbody 2D コンポーネントをゲームオブジェクトにアタッチして、物理演算システムでコントロールすることができます。Rigidbody 2D は、対応する標準の Rigidbody と類似したプロパティを共有していますが、2D 開発に適応しています。例えば Rigidbody 2D コンポーネントがアタッチされているゲームオブジェクトは、XY 平面に沿ってのみ移動でき、この平面に垂直な軸でのみ回転できます。
Unity エディターの Transform コンポーネントは、シーン内のゲームオブジェクト (およびその子ゲームオブジェクト) の配置、回転、スケーリングを行う方法を定義します。このコンポーネントを変更すると、描画する場所や他のコライダーの位置に影響を与える可能性がある他のコンポーネントも更新されます。Unity の 2D 物理演算システムはコライダーを動かし、互いに相互作用させることができます。そのため、Unity では物理演算システムがコライダーの動きを Transform コンポーネントに伝達するためのメソッドが必要です。この動きとコライダーとの接続は Rigidbody 2D コンポーネントが目的とするものです。Rigidbody 2D コンポーネントは Transform コンポーネントをオーバーライドし、代わりに定義された位置や回転に更新します。
ノート:Rigidbody 2D をオーバーライドするには、Transform コンポーネントをご自信で直接変更します (Unity はすべてのコンポーネントのすべてのプロパティを公開するため)。ただし、これにより、予測できない動きや、ゲームオブジェクトが互いにすり抜けてしまうなどの問題が生じます。
同じゲームオブジェクトや子ゲームオブジェクトに追加された Collider 2D コンポーネントは、暗示的にその Rigidbody 2D ゲームオブジェクトにアタッチされ、Collider 2D は Rigidbody 2D とともに動きます。アタッチした場合、Transform やコライダーのオフセットを使用して Collider 2D を直接動かさないでください。代わりに Rigidbody 2D を動かしてください。Rigidbody 2D を動かすと、最適なパフォーマンスが得られ、正しい衝突判定が行われます。同じ Rigidbody 2D にアタッチされた Collider 2D は、互いに衝突しません。つまり、1 つの複合コライダーとして効果的に機能する一連のコライダーを作成できます。すべてが Rigidbody 2D と同期して移動および回転します。
Rigidbody 2D の追加によりスクリプティング API から力を加えてスプライトの動作を見映えのよい物理挙動にできます。スプライトゲームオブジェクトに適切なコライダーコンポーネントをアタッチすると、他の動くオブジェクトとの衝突による影響を受けます。Unity の物理システムを使用すると、多くの一般的なゲームプレイメカニクスを簡素化し、最小限のコーディングで現実的な動作を描写できます。
ノート:Rigidbody 2D はしばしば互いに衝突するものとして説明されますが、衝突するのは、各 Rigidbody 2D にアタッチされた Collider 2D です。Rigidbody 2D は、コライダーなしには互いに衝突することはできません。
Rigidbody2D