リジッドボディはオブジェクトに物理挙動を付加するためのコンポーネントです。リジッドボディを加えた瞬間から,オブジェクトは重力の影響を受けるようになります。もし一つの,もしくは複数の コライダ コンポーネントを加わえれば,オブジェクトは衝突の影響によって動くようになります。
オブジェクトの挙動は付加されたリジッドボディコンポーネントによって制御されるので,スクリプトで位置と回転のTransform プロパティを変更して,動かそうとしないでください。代わりに,forcesを使ってオブジェクトを押し,物理エンジンに結果を計算させてください。
オブジェクトにリジッドボディを付けたいが,動きは物理エンジンによりコントロールされたくないというという事があると思います。例えば,あなたのキャラクターをスクリプトで直接操作しつつ,トリガー (下記参照 Triggers )としても検知されたい場合などです。この種類のスクリプトによって生成されるnon-physicalモーションは kinematic モーションとして知られています。リジッドボディコンポーネントには Is Kinematicと呼ばれるプロパティがあります。これは物理エンジンからのコントロールを排除しスクリプトからの操作を可能にします。オブジェクトのphysicsのオンとオフを切り替えるためにスクリプトでIs Kinematicの値を変更するのは可能です。しかし,これはパフォーマンスを超過するため限定的な使い方にとどめておく必要があります。
これらのコンポーネントのセッティングとスクリプトのオプションの詳細についてはRigidbody と Rigidbody 2D のリファレンスページを参照してください。
リジッドボディが一定の移動速度,もしくは回転速度を下回ると,物理エンジンはそれが急停止したと推測します。この時点で,オブジェクトは衝突かforceを受けるまで動かなくなります。いわゆる“睡眠”モードに設定された状態です。この最適化は,次の“起床”(例; モーションの再設定)まで,プロセッサタイムがリジッドボディの更新に費やされないことを意味します。たいていの場合,リジッドボディの睡眠と起床は透過的に行われます。しかしながら,もしスタティックコライダ(例; リジッドボディの無い物)がトランスフォーム位置の調整のために動かされた場合,オブジェクトの起床は失敗するかもしれません。この結果,足元の床が外部へ移動させられたリジッドボディオブジェクトは宙に浮かんでいる状態になる可能性があります。このようなケースでは,オブジェクトにWakeUp
機能を使って確実に起床させることができます。sleepingについての詳細はRigidbody と Rigidbody 2D コンポーネントページを参照してください。