Physics 概要
コライダー

リジッドボディ概要

Rigidbody (リジッドボディ) はオブジェクトに物理挙動を可能にするためのメインコンポーネントです。リジッドボディを加えた瞬間から、オブジェクトは重力の影響を受けるようになります。さらに、1つ以上の Collider (コライダー) コンポーネントを加わえれば、オブジェクトは衝突の影響によって動くようになります。

オブジェクトの挙動は付加されたリジッドボディコンポーネントによって制御されるので、スクリプトで位置と回転の Transform プロパティーを変更して、動かそうとしないでください。代わりに を使ってオブジェクトを押し、物理エンジンに結果を計算させてください。

オブジェクトにリジッドボディを付けたいが、動きは物理エンジンにより制御されたくないというという事があると思います。例えば、あなたのキャラクターをスクリプトで直接操作しつつ、トリガー (下記参照 Triggers )としても検知されたい場合などです。この種類のスクリプトによって生成される物理演算ではないモーションは kinematic モーションとして知られています。リジッドボディコンポーネントには Is Kinematic と呼ばれるプロパティーがあります。これは物理エンジンからの制御を排除しスクリプトからの操作を可能にします。オブジェクトの physics のオンとオフを切り替えるためにスクリプトで Is Kinematic の値を変更するのは可能です。しかし、これはパフォーマンスのオーバーヘッドを伴うため、限定的な使い方にとどめておく必要があります。

これらのコンポーネントのセッティングとスクリプトのオプションの詳細については RigidbodyRigidbody 2D のリファレンスページを参照してください。

スリープ

リジッドボディが決められた最低の直線/回転スピードよりも動きが遅いとき、物理エンジンはそれが休止していると仮定します。これが発生すると、ゲームオブジェクトは衝突されるか力が与えられない限り再び動きません。そのため、それは「スリープ」モードに設定されます。この最適化により、次にリジッドボディが「起きる」 (つまり、再び動作すること) まで、プロセッサーがリジッドボディの更新に時間を費やすことはありません。

たいていの場合、Rigidbody コンポーネントのスリープと起動の発生は明確です。ただし、静的コライダー (これは、リジッドボディなしのコライダー) が Transform を変更することによってオブジェクトに近づいたり遠ざかったりすると、ゲームオブジェクトが起きそこなう場合があります。この結果、例えば足元の床が取り除かれたのに、リジッドボディオブジェクトが宙に浮いたままの状態になる場合があります。このような場合は、WakeUp 関数を使うとオブジェクトを明示的に起こすことができます。スリープについての詳細は RigidbodyRigidbody 2D コンポーネントページを参照してください。

Physics 概要
コライダー