LoginSignup
4
2

More than 1 year has passed since last update.

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

Posted at

Unityでゲームを作る時に、
RigidbodyやColliderは付いてるのに
衝突してほしいオブジェクトがなぜかすり抜けてしまうことってありませんか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

YouTubeチャンネル

ゲーム雑学や、具体的なゲーム開発方法まで紹介しているチャンネルを運営しています!

参照記事

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

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2