Physics 概要
コライダー

Rigidbody

リジッドボディ はオブジェクトに物理挙動を付加するためのコンポーネントです。リジッドボディを加えた瞬間から、オブジェクトは重力の影響を受けるようになります。もし一つの、もしくは複数の コライダー コンポーネントを加わえれば、オブジェクトは衝突の影響によって動くようになります。

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

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

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

Sleeping

リジッドボディが一定の移動速度、もしくは回転速度を下回ると、物理エンジンはそれが急停止したと推測します。この時点で、オブジェクトは衝突か力を受けるまで動かなくなります。いわゆる“睡眠”モードに設定された状態です。この最適化は、次の“起床”(例:モーションの再設定)まで、プロセッサータイムがリジッドボディの更新に費やされないことを意味します。たいていの場合、リジッドボディの睡眠と起床は透過的に行われます。しかしながら、もしスタティックコライダー(例:リジッドボディのない物)がトランスフォーム位置の調整のために動かされた場合、オブジェクトの起床は失敗するかもしれません。この結果、足元の床が外部へ移動させられたリジッドボディオブジェクトは宙に浮かんでいる状態になる可能性があります。このようなケースでは、オブジェクトに WakeUp 機能を使って確実に起床させることができます。sleeping についての詳細は RigidbodyRigidbody 2D コンポーネントページを参照してください。

Physics 概要
コライダー