Unityの当たり判定がすり抜ける時の対処方法!

皆さんこんにちは、内山です!

 

Unityでゲームを作る時に、

RigidbodyやColliderは付いてるのに

衝突してほしいオブジェクトがなぜかすり抜けてしまうことってありませんか?

 

今回はそんな時の対処方法について紹介していきます!

 

 

この記事は、
Advent Calendarの2021/12/09の記事です

テーマ
Unity始めた頃の自分に教えたい ゲーム開発のテクニック

 

カレンダーURL

Qiita

Calendar page for Unity始めた頃の自分に教えたい ゲーム開発のテクニック【スタジオしまづ 】.…

 

UnityのCollider

Unityでコライダーがすり抜ける原因

RigidbodyColliderは付いてるのに
オブジェクトが他のオブジェクトに当たらずに、
すり抜けてしまう原因は

オブジェクトの移動速度が速い可能性が高いです。

Unityでコライダーがすり抜ける対処方法

ではどのように対処すればいいのか、
2つほど解説していきます。

1:オブジェクトの移動速度を落とす

最も簡単な対処方法の一つです。

ただしゲームの表現や、
やりたいことが再現できなくなるため、
この手段はとれることが少ないと思います。

2:RigidbodyのCollision Detectionの設定を変更する

次の対処方法としてRigidbodyのCollision Detectionの設定を変える方法があります。

 

設定を変えるだけですり抜ける現象を防ぐことができますが、一つ注意が必要です。
下記の順番で処理が重くなっていきます。

Discrete:一番処理が軽い。オブジェクトの移動速度が遅い場合に用いる。
Continuous:ぶつかる相手がRigidbodyコンポーネントを持っていない。尚且つ動かないオブジェクトの時に用いる
Continuous Speculative:お互いが動くオブジェクトで、移動速度が速いときに用いる。※誤検知がある
Continuous Dynamic:お互いが動くオブジェクトで、移動速度が速いときに用いる。

なので自分が作るゲームに合わせて
設定を変更して行ってください。

 

Collision Detectionについて
もっと詳しく知りたい方は下記記事をご覧ください。

参考になるサイト

PR

Unityをより効率的に学びたい人向けに

Unityの日本語情報が比較的多いと言われてはいますが
日本語では体系的にまとまっている情報が非常に少なく、

私がUnityを学んだときは
時間的なコストが非常にかかってしまいました。

 

そこでこれからUnityを学習する人は

より少ない時間で、より多くの知識を習得できるように
私が学習した知識を共有するYouTubeチャンネルを開設しました!

 

詳しくは下記よりご覧になってください。

損をしないUnity学習方法

このチャンネルでは、短い時間でゲーム開発に必要な知識を習得できるジャンルごとの解説講座を公開しています! 丁寧な解説を心がけているので、ゲーム開発に挫折することなくゲームを作りきる成功体験を[…]