スポンサーリンク

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

Unity

Unity Version 2021.3.11f1(LTS)

すり抜ける原因

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のみしかありませんが、
十分すり抜けなくなるので、問題ありません!

おすすめ書籍

「まずは、わかりやすい本で勉強したい!」という方におすすめの書籍です!

初心者にもやさしい説明と、イラストでUnityの使い方やゲームの開発の流れを学ぶことが出来ます!

今回紹介した、Rigidbodyの使い方も、わかりやすく紹介されています。

気になる方は、是非チェックしてみて下さい!

お疲れさまでした!

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