3Dアクションの当たり判定が分からない。
RaycastとCollider、どちらを使えばいいのか迷う。
実は、用途に応じて使い分けることで、効率的に実装できます。
この記事では、3Dアクションの当たり判定について、RaycastとColliderの使い分けを解説します。
✨ この記事でわかること
- RaycastとColliderの違い
- それぞれの使い分け方
- 実装例とNG例
- 3D特有の当たり判定の考え方

3Dの当たり判定は、2Dと少し考え方が違います。まずは、RaycastとColliderの違いを理解しましょう。
\あなたにピッタリのアクションゲーム制作講座を見つけよう!/
おすすめ第1位
Unity 2Dアクションゲーム
の作り方講座(ロックマン風)
ロックマン風の横スクロールACTをスマホ化・広告実装まで対応。ゲームのリリースまでを見据えた実践的なカリキュラムで、作って終わりにならない一本です。
3D入門に最適
ゼルダ風3Dアクションゲーム
の作り方講座
ゼルダ風の3Dアクションをスマホ対応で作れる入門講座。全16回で初心者でも3Dゲーム開発の基礎からしっかり習得できます。
3プラットフォーム対応
Unity FPSゲームの
作り方講座
FPS・VR・スマホの3プラットフォームに同時対応。1本作るだけで3つのゲームが完成する圧倒的なコスパが魅力の講座です。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
RaycastとColliderの違い

RaycastとColliderの考え方自体は2D・3D共通ですが、3Dでは奥行きや立体的な衝突を考慮する必要があるため、使い分けがより重要になります。
3Dアクションの当たり判定には、主に2つの方法があります。
- Raycast:「今この瞬間に当たっているか」を自分で調べる方法です。
そのため、攻撃・視線・距離測定など、タイミングが重要な判定に向いています。 - Collider:「触れたら自動で反応する」仕組みです。
壁との衝突や、敵にぶつかった時の処理など、常に判定したい場面に向いています。
それぞれ、用途が異なります。
どちらを使うかは、「一瞬だけ判定したいのか」「常に衝突を検知したいのか」で判断します。
Raycastの使い方

Raycastは、特定の方向に線を飛ばして、何かに当たったかを判定します。
攻撃判定や、地面との距離測定などに使います。
以下のコードで、基本的なRaycastができます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using UnityEngine; public class RaycastExample : MonoBehaviour { [SerializeField] private float attackRange = 5f; void Update() { if (Input.GetKeyDown(KeyCode.Z)) { RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit, attackRange)) { if (hit.collider.CompareTag("Enemy")) { // 敵に当たった Debug.Log("敵に当たった: " + hit.collider.name); } } } } } |
このコードで、プレイヤーの正面にRaycastを飛ばし、敵に当たったかを判定できます。
attackRangeの値を変えると、攻撃範囲が調整できます。
なお、RaycastをUpdate内で頻繁に実行すると処理負荷が高くなる場合があります。
攻撃時など、必要なタイミングに限定して使用することが重要です。
Raycastの応用例
Raycastは、様々な用途に使えます。
- 攻撃判定:プレイヤーの正面にRaycastを飛ばす
- 地面判定:真下にRaycastを飛ばして、地面との距離を測定
- 視界判定:敵がプレイヤーを見ているかを判定
特に、攻撃判定ではRaycastが便利です。
プレイヤーの正面にRaycastを飛ばすだけで、攻撃判定ができます。

Raycastは、攻撃判定に最適です。プレイヤーの正面に飛ばすだけで、シンプルに実装できます。
Colliderの使い方

Colliderは、オブジェクト同士の衝突を自動で検知します。
敵との衝突判定や、アイテムの取得などに使います。
以下のコードで、基本的なCollider判定ができます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using UnityEngine; public class ColliderExample : MonoBehaviour { void OnTriggerEnter(Collider other) { if (other.CompareTag("Enemy")) { // 敵との衝突処理 Debug.Log("敵と衝突: " + other.name); } } void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("Wall")) { // 壁との衝突処理 Debug.Log("壁と衝突: " + collision.gameObject.name); } } } |
OnTriggerEnterは、Is Triggerが有効なColliderで発生します。
OnCollisionEnterは、Is Triggerが無効なColliderで発生します。
用途に応じて使い分けます。
TriggerとCollisionの違い
Colliderには、2つのモードがあります。
- Trigger:すり抜けるが、衝突を検知する
- Collision:すり抜けず、物理的な衝突が発生する
Triggerは、アイテムの取得や、エリア判定などに使います。
Collisionは、壁との衝突や、敵との物理的な衝突などに使います。
使い分けのポイント

RaycastとColliderは、用途に応じて使い分けます。
| Raycastを使う場面 | Colliderを使う場面 |
| 攻撃判定 | 敵との衝突判定 |
| 地面との距離測定 | アイテムの取得 |
| 視界判定 | 壁との衝突 |
基本的には、攻撃判定にはRaycast、衝突判定にはColliderを使います。
ただし、状況に応じて使い分けることが大切です。
よくあるNG例と改善方法

3D当たり判定でよくある失敗例を紹介します。
NG例1:Raycastの距離が短すぎる
攻撃判定で、Raycastの距離が短すぎると、敵に当たりません。
⚠️ NG例
|
1 2 3 |
// 距離が短すぎる if (Physics.Raycast(transform.position, transform.forward, out hit, 1f)) |
改善方法:距離を適切に設定します。
|
1 2 3 |
// 距離を適切に設定 if (Physics.Raycast(transform.position, transform.forward, out hit, 5f)) |
NG例2:Colliderのサイズが適切でない
Colliderのサイズが小さすぎると、衝突が検知されません。
改善方法:Colliderのサイズを、オブジェクトのサイズに合わせて調整します。
NG例3:レイヤーの設定が間違っている
レイヤーの設定が間違っていると、衝突が検知されません。
改善方法:レイヤーを正しく設定し、Physics Settingsで衝突判定を有効にします。
実践的な3D当たり判定を学ぶには

ここまで、3Dアクションの当たり判定について解説してきました。
ただし、実際のゲーム制作では、さらに多くの要素が必要になります。
アニメーション、エフェクト、UI、サウンドなど、全体を体系的に学ぶには、専門の講座が効率的です。
Unity入門の森では、3Dアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
3Dアクション制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
アクションゲームを作りたいなら!Unity入門の森のアクション制作講座で本格ゲーム開発に挑戦しよう
Unity入門の森には、横スクロール・3Dアクション・FPSまで幅広いアクションゲームを作れる講座が揃っています。作りたいジャンルや目標に合わせて選んでみてください。
Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!スマホ化・広告実装まで対応した本格横スクロールACTを作れる!】

- ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
- 7ステージ+ラスボスステージの市販ゲームに近い本格的なゲーム設計
- スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
- 敵AI15体・多彩なマップギミック・武器システムを完全実装
- 完全オリジナルゲームをアセット不使用で素材提供付きで制作
Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを開発できるようになる本格的な講座です。
ステージ選択・ボスの弱点システム・新武器ゲットというロックマン風のゲーム設計はもちろん、スマホ実機ビルド・AdMob広告実装(リワード・インタースティシャル)まで対応。作って終わりではなく、リリースして収益化するところまで学べます。
書籍や他のチュートリアルでは扱われていないリリースレベルの開発スキルを習得したい人に、自信を持っておすすめできる一本です。
スマホ化・広告実装まで対応した本格横スクロールACT
ロックマン風の2Dアクションゲームをリリースまで作り上げよう
→ Unity 2Dアクションゲームの作り方講座を見てみる
広告収益まで視野に入れた実践スキルを今すぐ手に入れよう!
ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

- ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
- 初心者でも取り組みやすい丁寧な解説構成
- スマホ化対応で実機で動かせるゲームが完成
- 画像・動画・全ソースコード公開の充実したサポート
- アセットを使った実践的なゲーム開発手法が身につく
ゼルダ風3Dアクションゲームの作り方講座は、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを作りたい人におすすめの入門講座です。
3Dゲーム開発の基礎からスマホ化まで全16回でしっかり習得できます。画像・動画・全ソースコードを公開した丁寧な解説で、初めて3Dゲームに挑戦する人でも確実に完成まで到達できる構成です。
「3Dゲームはなんだか難しそう」と感じている人が最初の一歩を踏み出すのに最適な講座です。
初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の第一歩を踏み出そう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
3D開発の壁を一気に突破!スマホで動くオリジナルゲームを完成させよう!
Unity FPSゲームの作り方講座【全17回!FPS・VR・スマホの3プラットフォームを同時に作れる!】

- APEX・バトルフィールド風のFPSゲームをゼロから開発
- FPS・スマホ・VRの3プラットフォームに同時対応
- 書籍では学べないVR対応弓矢FPSのオリジナリティ高い開発手法
- 地上・空中の敵AIや弓矢チャージショットなど本格システムを実装
- 初心者でも安心の丁寧な解説と完成プロジェクトファイル付き
Unity FPSゲームの作り方講座は、APEX・バトルフィールド・Call of Dutyのような一人称視点のFPSゲームを作るための講座です。
弓矢を使ったオリジナリティの高いFPSをベースに、PC・スマホ・VRの3プラットフォームに同時対応した開発手法を全17回で習得できます。VR空間で弓を構えて矢を射るという高度なアクションの実装まで、書籍では学べないスキルが身につきます。
1本の講座でFPS・スマホ・VRを同時に作れるのはこの講座ならでは。3Dゲーム開発の幅を一気に広げたい中・上級者志望の方にもおすすめです。
FPS・スマホ・VRの3プラットフォームを同時に完成させる
1本作るだけで3つのゲームが完成する圧倒的な開発体験を手に入れよう
→ Unity FPSゲームの作り方講座を見てみる
書籍では学べないVR対応FPSで、一歩先の3Dゲーム開発スキルを今すぐ!
まとめ

3Dアクションの当たり判定について解説しました。
要点のまとめ
- Raycastは、攻撃判定や距離測定に使う
- Colliderは、オブジェクト同士の衝突判定に使う
- 用途に応じて使い分けることが大切
- レイヤーの設定を正しく行う
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。





コメント