初心者必見!現場レベルの「ゲーム制作講座PDF」を無料プレゼント中!▶

Unityの当たり判定 | Colliderと衝突イベント

Unity ゲーム制作実践

「攻撃は当たっているはずなのにダメージが入らない」「地面に埋まって変な位置で止まる」——当たり判定の不具合は、初心者が最初にぶつかる壁のひとつです。

037のコライダー基礎を踏まえ、この記事ではColliderとTriggerの使い分け、衝突イベントの書き方、Layerでの除外、判定がずれる原因までを実践的に整理します。

080の攻撃実装や088の敵AIと接続するうえで、当たり判定は欠かせない土台になります。

  • Colliderを付けたのに、衝突イベントが一切呼ばれない…
  • Is Triggerの意味が分からず、物理的に押し合って変な動きになる。
  • プレイヤーと敵の弾が、意図しない組み合わせで当たってしまう。

この記事でわかること

  • Collider(物理衝突)とTrigger(通過検知)の違い
  • OnCollisionEnter2DとOnTriggerEnter2Dの使い方
  • 138 Layer設定で当たりを整理する方法
  • 判定がずれる原因(スケール・Rigidbody・IsTrigger)
  • 080攻撃・087ゴールとの接続例
  • 初心者でも理解できる解説

\プログラミング未経験でも大丈夫!まずは1本作り切ろう/

初心者が最初に選ぶならコレ

Unity ノンフィールドRPG
+スレスパ風JRPG講座

★★★★★ (Unity6対応)

Unity6対応・スマホ化対応の最新カリキュラム。「何から始めればいいかわからない」という初心者でも、ステップごとに手を動かすだけでRPGが完成します。

講座を見てみる \ゼロからでもスマホ対応RPGが作れる!/

憧れのアクションゲームに挑戦

Unity 2Dアクションゲーム
の作り方講座(ロックマン風)

★★★★★ (スマホ化・広告実装)

初心者でもロックマン風の横スクロールACTが作れる講座。7ステージ+ラスボスという本格構成で、スマホ化・広告実装まで対応。「自分のゲームをリリースしたい」夢を叶えます。

講座を見てみる \初心者でも本格ACTが完成する!/

3Dゲーム開発の入口はここ

ゼルダ風3Dアクションゲーム
の作り方講座

★★★★★ (スマホ化対応)

「3Dゲームって難しそう…」と感じている初心者向けの講座。全16回でゼルダ風3Dアクションがスマホ対応で作れるようになります。3D開発の基礎がしっかり身につきます。

講座を見てみる \初心者でも全16回で3Dゲームが完成!/

ColliderとTriggerの違い

当たり判定の要はColliderです。
2DゲームではBoxCollider2D、CircleCollider2Dなどを使います。
重要なのはIs Triggerのチェック有無です。

設定 物理的な押し合い 呼ばれるイベント 向いている用途
Is Trigger OFF あり(壁・地面) OnCollisionEnter2D 地面に立つ、壁にぶつかる
Is Trigger ON なし(すり抜ける) OnTriggerEnter2D 攻撃ヒット、ゴール、アイテム取得

攻撃のHitbox、087のゴール、回復アイテムはTriggerが定番です。
地面や壁はTrigger OFFにします。

衝突イベントの基本コード

衝突を検知するには、どちらか一方にRigidbody2Dが必要です。
KinematicでもDynamicでもイベントは発火します。

using UnityEngine;

public class HitDetector : MonoBehaviour
{
  // 物理衝突(壁にぶつかったとき)
  void OnCollisionEnter2D(Collision2D collision)
  {
    if (collision.gameObject.CompareTag("Ground"))
      Debug.Log("地面に着地");
  }

  // Trigger(攻撃が当たったとき)
  void OnTriggerEnter2D(Collider2D other)
  {
    if (other.CompareTag("Player"))
    {
      var health = other.GetComponent<Health>;
      if (health != null) health.TakeDamage(10);
    }
  }
}

080の攻撃判定は、剣先や弾にTrigger付きCollider2Dを付け、敵タグと衝突したらTakeDamageを呼びます。
プレイヤー側ではなく、攻撃側にHitboxを置く設計が一般的です。

OnCollisionEnter2DとOnTriggerEnter2Dは、どちらも「相手側のCollider」が引数として渡されます。
自分自身のColliderではない点に注意してください。
2Dと3Dでメソッド名が異なるため、Collider2Dを使うプロジェクトでは必ず2D版のイベント名を使います。

管理人
管理人

「当たらない」ときは、両方にColliderがあるか、どちらかにRigidbody2Dがあるかを最初に確認しましょう。
この2点だけで大半の原因が解決します。

Layerで衝突相手を制限する

138のLayer設定を使うと、「プレイヤーの弾は敵だけ当たる」「敵同士は当たらない」といった制御ができます。

  • Layerを作成 … Player / Enemy / PlayerBullet / Ground など
  • オブジェクトにLayerを割り当て
  • Edit → Project Settings → Physics 2D → Layer Collision Matrixで組み合わせを設定

Matrixでチェックを外した組み合わせは、Colliderが重なってもイベントが発火しません。
308の2Dアクション当たり判定記事でも、同じ考え方を詳しく扱っています。

判定がずれる原因と対処

「見た目では当たっているのに判定がズレる」問題には、定番の原因があります。

原因 症状 対処
TransformのScaleが1以外 Colliderの形がスプライトと合わない Scaleを1に戻し、子オブジェクトでサイズ調整
Is Triggerの設定ミス 壁をすり抜ける/押し合いが起きる 用途に合わせてON/OFFを統一
Rigidbody2Dがない イベントが一切呼ばれない どちらか一方に追加
Colliderサイズが未調整 見えない範囲で当たる Edit Colliderで形状を合わせる

SceneビューでColliderの緑線を表示し、スプライトと重なっているか目視確認するのが確実です。
134のGizmos表示も活用しましょう。

当たり判定の設定手順
  • STEP1
    Collider2Dを追加

    BoxCollider2DまたはCircleCollider2D
  • STEP2
    Rigidbody2Dを確認

    少なくとも一方のオブジェクトに付ける
  • STEP3
    Is Triggerを決める

    攻撃・ゴールはON、地面はOFF
  • STEP4
    衝突イベントを実装

    OnTriggerEnter2Dでタグ判定
  • STEP5
    Layer Matrixを設定

    不要な衝突を除外

080攻撃・087ゴールでの使い分け

用途別の設定例を整理します。

  • プレイヤー本体 … CapsuleCollider2D(Trigger OFF)+ Rigidbody2D
  • 攻撃Hitbox … 子オブジェクトにBoxCollider2D(Trigger ON)
  • 087ゴール … Trigger ON、Playerタグのみ反応
  • 敵の弾 … Trigger ON、Playerレイヤーとだけ衝突

攻撃Hitboxは、攻撃アニメーション中だけSetActive(true)にする方法がよく使われます。
常時ONだと、振り向いただけで当たってしまいます。

つまずきやすいポイント

当たり判定でよくある問題は次のとおりです。

  • イベントが複数回呼ばれる → 1フレームに1回だけ処理するフラグを入れる
  • 高速移動ですり抜ける → Rigidbody2DのCollision DetectionをContinuousに
  • タグ判定が効かない → TagがUntaggedのまま。
    Player/Enemyを設定
  • 3Dと2Dを混在 → Collider2DとColliderは別系統。
    統一する

デバッグ時は、OnTriggerEnter2Dの先頭にDebug.Log(other.name)を入れ、何と衝突しているかConsoleで確認すると原因が特定しやすくなります。

管理人
管理人

当たり判定は地味ですが、080攻撃から089ボス戦まで全部ここに依存します。
1つずつTriggerで動かしてから、Layer整理に進むと挫折しにくいですよ。

記事を読んで「作ってみたい!」と思ったら!初心者でも1本完成できる講座で実力をつけよう

知識を読むだけで終わらせるのはもったいない。実際に手を動かしてゲームを1本完成させることで、理解が一気に深まります。プログラミング未経験からでも取り組める講座で、ゲーム開発の第一歩を踏み出しましょう。

Unity ノンフィールドRPG+スレスパ風JRPG講座【Unity6対応!初心者でもデッキ構築×JRPGをスマホ向けに作れる!】

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座

  • Unity6対応・スマホ化対応で最新環境のゲーム開発が学べる
  • Slay the Spire風のデッキ構築システム×JRPGの組み合わせを実装
  • 初心者でも迷わず進められる丁寧な解説構成
  • ノンフィールドRPGとデッキ構築JRPGの2つをまとめて学べるセット講座

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座は、プログラミング未経験の初心者でも取り組みやすい、ステップバイステップ形式の講座です。

Unity6対応・スマホ化対応の最新カリキュラムで、読んで「なるほど」と思った知識を、実際に動くゲームとして形にする体験ができます。

「何から始めればいいかわからない…」という初心者が最初に選ぶ一本として最適な講座です。

Unity6対応・スマホ化対応の最新カリキュラム
ゼロからでもRPGを完成させよう
→ スレスパ風デッキ構築JRPG講座を見てみる
初心者でもスマホ対応のRPGが作れる!まずは1本完成を目指そう!

Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!初心者でもスマホ化・広告実装まで対応した本格横スクロールACTが作れる!】

Unity 2Dアクションゲームの作り方講座(ロックマン風)

  • ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
  • 7ステージ+ラスボスステージの本格的なゲーム設計を初心者でも実現
  • スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
  • 敵AI15体・多彩なマップギミック・武器システムを完全実装
  • 完全オリジナルゲームをアセット不使用で素材提供付きで制作

Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを、初心者でもゼロから開発できるようになる講座です。

全16回で当たり判定・物理挙動・敵AIの知識を実際のゲームコードとして実装する体験が詰め込まれています。スマホ化・広告実装まで対応しているため、「作って終わり」ではなくリリースまで見据えた実践スキルが身につきます。

「憧れのアクションゲームを自分の手で作ってみたい」という初心者に強くおすすめの一本です。

スマホ化・広告実装まで対応した本格横スクロールACT
初心者でもロックマン風2Dアクションをリリースまで作り上げよう
→ 2Dアクションゲームの作り方講座を見てみる
初心者でも本格ACTが完成する!広告収益まで視野に入れた実践スキルを手に入れよう!

ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

ゼルダ風3Dアクションゲームの作り方講座

  • ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
  • 「3Dは難しそう」と感じている初心者でも取り組みやすい丁寧な解説構成
  • スマホ化対応で実機で動かせるゲームが完成
  • アセットを使った実践的なゲーム開発手法が身につく
  • 画像・動画・全ソースコード公開の充実したサポート

ゼルダ風3Dアクションゲームの作り方講座は、「3Dゲームは難しそう…」と感じている初心者こそおすすめの入門講座です。

全16回の丁寧な解説で、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを確実に完成まで導きます。スマホ化対応で実機で動かせるため、初めて3Dゲームを作り上げた達成感がひときわ大きい講座です。

「3Dゲームを自分でも作れるか試してみたい」という初心者の最初の一歩として最適です。

初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の壁を一気に突破しよう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
全16回でスマホで動くオリジナル3Dゲームを完成させよう!

まとめ

Unityの当たり判定は、Collider/Triggerの使い分け → Rigidbody2Dの確認 → OnTriggerEnter2Dで処理 → Layer Matrixで整理、この流れで設計できます。
037の基礎を実戦に活かし、080・087・088と接続していきましょう。

判定が正確になると、攻撃の手応えやゴール到達の信頼感が一気に上がります。
当たり判定からボス戦まで体系的に学びたい方は、Unity入門の森の2Dアクション講座も、Collider設定から実戦まで追える教材として参考になります。

今日はプレイヤーにTrigger付きHitboxを1つ付け、敵に触れたらConsoleにログが出るところまで進めてみてください。

コメント

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