スポンサーリンク

【Unity】オブジェクトの当たり判定がすり抜けるときに確認したいRigidbodyの設定

スポンサーリンク
Unity

すり抜ける原因

RigidbodyColliderを、設定してるのに、オブジェクトがすり抜けてしまう時は、

オブジェクトの移動速度が速すぎることが原因の場合が多いです。

RigidBodyのCollisionDetectionを変更する

RigidbodyCollisionDetectionがデフォルトでは、Discreteとなっています。

基本的には、デフォルトのDiscreteで大丈夫ですが、移動速度の速いオブジェクトを扱う時には、

以下の3つの設定が有効です。

オブジェクトの状況に応じて、以下の3つの設定から適したものを選びます。

Continuous

Continuousは、

・衝突する対象にRigidbodyがない設定されていないとき(Colliderのみ設定されている)
・衝突する対象が動いていないとき

以上の条件の時にContinuousを使用します。

4つの設定の中で3番目に重たい設定

ContinuousDynamic

ContinuousDynamicは、

・どちらも動くオブジェクトのとき
・移動速度がめちゃくちゃ速い時

以上の条件の時にContinuousDynamicを使用します。

4つの設定の中で1番目に重たい設定

ContinuousSpeculative

ContinuousSpeculativeは、

・どちらも動くオブジェクトのとき
・移動速度がめちゃくちゃ速い時
・ContinuousDynamicだとゲームが重たくなってしまう時

※当たり判定が反応しない場合がある

以上の条件の時にContinuousDynamicを使用します。

4つの設定の中で2番目に重たい設定

Rigidbody2Dの場合

Rigidbody2Dの場合は、設定がContinuousのみしかありませんが、
十分すり抜けなくなるので、問題ありません!

タイトルとURLをコピーしました