Unityでゲーム開発をしていて、「アセットストアからダウンロードしたかっこいい3Dモデル(または2Dイラスト)にプレハブを差し替えたら、なぜか弾や敵の当たり判定が消えてすり抜けてしまう…」と悩んでいませんか?
実はこれ、Unity開発において非常によくあるトラブルです。
この記事では、プレハブを素材と入れ替えたときに当たり判定が消える原因と、シューティングゲームなどで正しく当たり判定(衝突検知)を復活させるための具体的な手順をわかりやすく解説します!
1. なぜ素材を入れ替えると当たり判定が消えるのか?原因はコレ!
アセットストアからダウンロードした3Dモデルや素材をそのままヒエラルキーに配置すると、スクリプトや当たり判定が機能しなくなることがあります。原因は主に以下の2つです。
- 素材自体に「Collider(コライダー)」がついていない アセットストアの素材の多くは「見た目(Mesh)」のデータだけで、物理的な「当たり判定(Collider)」を持っていません。元のプレハブを丸ごと差し替えた際、コライダーごと消えてしまった可能性が高いです。
- コンポーネントやスクリプトが外れてしまった オブジェクトを差し替えたことで、以前設定していたスクリプトや
Rigidbodyなどの重要なコンポーネントがリセットされてしまうためです。
2. 【解決策】消えた当たり判定を復活させるステップ
消えてしまった当たり判定は、手動でコライダーを追加し直すことで簡単に修正できます。今回は一番汎用的な 「Box Collider」 を使った手順を解説します。
ステップ1:コライダー(Collider)を追加する
- ヒエラルキー上で、当たり判定をつけたいオブジェクト(弾や敵など)を選択します。
- インスペクター(Inspector)の一番下にある 「Add Component」 ボタンをクリックします。
- 検索窓に 「Box Collider」(2Dゲームの場合は
Box Collider 2D)と入力し、追加します。
ステップ2:シューティングゲームなら「Is Trigger」にチェックを入れる
ここが非常に重要なポイントです! シューティングゲームの弾や敵のように、「物理的にガツンと跳ね返るのではなく、すり抜けた瞬間を検知してダメージを与えたい」 という場合は、追加した Box Collider 内にある 「Is Trigger」 に必ずチェックを入れてください。
💡 Is Triggerとは? チェックを入れると、オブジェクト同士が物理的に衝突して止まることがなくなります(すり抜けます)。その代わり、プログラム側で「重なった瞬間」を検知できるようになります。
3. まだ動かない?当たり判定が反応しないときの3大チェックリスト
コライダーをつけて Is Trigger にチェックを入れたのに、なぜかまだ弾が当たらない…というときは、Unityの「衝突検知のルール」を満たしていない可能性があります。次の3点を確認してみましょう。
① どちらか一方のオブジェクトに「Rigidbody」はついていますか?
Unityの仕様上、衝突を検知するには移動する側のどちらか一方(または両方)に Rigidbody(または Rigidbody 2D)コンポーネントが必要です。
- 弾のプレハブ、または敵(プレイヤー)に
Rigidbodyを追加しましょう。 - ※物理演算で動かさず、スクリプトで移動させている場合は、重力で落ちないように
Rigidbodyの 「Is Kinematic」(2Dの場合は Body Type をKinematicに)にチェックを入れておきます。
② スクリプトの「関数名」は合っていますか?
Is Trigger を使用する場合、スクリプト側で呼び出す関数(メソッド)が間違っているとプログラムが走りません。
- 3Dゲームの場合:
void OnTriggerEnter(Collider other) - 2Dゲームの場合:
void OnTriggerEnter2D(Collider2D collision)
OnCollisionEnter(Triggerを使わない物理衝突用)になっていないか、大文字・小文字が間違っていないか(例:OntriggerEnter はNG)を確認してください。
③ スクリプト自体が消えていませんか?
プレハブを差し替えた際、以前割り当てていた「ダメージ処理」や「消滅処理」のスクリプト自体が外れてしまっていることがあります。インスペクターを見て、必要なスクリプトがアタッチされているか再度確認しましょう。
まとめ
Unityでアセットストアの素材に変更した際に当たり判定が消えたら、以下のセットを思い出してください。
Box Colliderなどのコライダーを再追加する- すり抜けさせたいなら
Is Triggerにチェックを入れる - 動く方に
Rigidbody(Kinematic設定)を忘れない
この仕組みさえ覚えておけば、今後新しい武器や敵キャラクターを追加するときも怖くありません!ぜひ楽しいゲーム開発を続けてくださいね。


コメント