パトロールAIを作りたい。でも、2点巡回や壁検知の実装が分からない。
多くの学生が最初に感じるのが、この疑問です。
実は、パトロールAIは、最も簡単なAIパターンです。
この記事では、パトロールAIの作り方として、2点巡回・壁検知・視界判定を解説します。
✨ この記事でわかること
- 2点巡回の実装方法
- 壁検知の実装方法
- 視界判定の実装方法
- 2D/3D対応の実装

パトロールAIは、最も簡単なAIパターンです。まずは、2点巡回から始めましょう。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
2点巡回の実装方法

2点巡回は、2つの地点を往復するAIです。
主な手順は次の通りです。
- 2つの地点を定義
- 現在の目標地点を設定
- 目標地点に到着したら、もう一方の地点を目標にする
2点巡回を組み込むことで、敵キャラが特定の範囲を往復し続ける“パトロール動作”を作れます。
横スクロールアクションなどでよく使われる基本のAIです。
壁検知の実装方法

壁検知は、Raycastを使うことで実現できます。
主な方法は次の通りです。
- 前方にRaycastを飛ばす
- 壁に当たったら向きを変える
- 壁検知の範囲を調整する
壁検知は、前方にRaycastを飛ばして壁にヒットした瞬間に向きを反転させる方法が基本です。
Rayの長さを調整すれば、敵がどの距離で反応するかも制御できます。

Raycastは敵AIの基本中の基本です。壁の距離や角度を変えるだけで、動きを自然に見せられるので、いろいろ試してみましょう。
コード例
|
1 2 3 4 5 |
if (Physics.Raycast(transform.position, transform.right, 0.5f, wallLayer)) { transform.Rotate(0, 180, 0); // 反転 } |
視界判定の実装方法

視界判定は、プレイヤーを検知する処理です。
主な方法は次の通りです。
- 距離を計算する
- 角度を計算する
- 視界範囲内にいるか判定する
視界判定は、敵がプレイヤーを“見つけた”かどうかを判断する処理です。
距離と角度をチェックし、視界範囲にプレイヤーが入った瞬間に“巡回 → 追跡”へ行動を切り替えることができます。
コード例
|
1 2 3 4 5 6 |
float angle = Vector3.Angle(transform.forward, toPlayer); if (distance < viewDistance && angle < viewAngle * 0.5f) { return true; // プレイヤーを発見 } |
2D/3D対応の実装

2D と 3D のパトロールAIは、動く世界が違うだけで、基本の考え方は同じです。
どちらも「進む → 反転する → プレイヤーを見つけたら追尾する」という流れで動きます。
2D と 3D の違い(まずはイメージ)
2D は横スクロールのように平面で動き、3D は奥行きも含めた立体の空間を移動します。
動く方向が増えるだけで、ロジックそのものは変わりません。
- 2D:左右(+上下)に動く世界
- 3D:前後・左右・上下に動く世界
この「動ける方向の違い」が、実装の差となって表れます。
使うコンポーネントの違い
移動や当たり判定で、2D と 3D では使用するコンポーネントが異なります。
| 項目 | 2D | 3D |
| 物理挙動 | Rigidbody2D / Physics2D | Rigidbody / Physics |
| 移動方向 | X/Y 軸 | X/Y/Z 軸 |
Raycast(壁検知)の違い
同じ Raycast でも、2D と 3D では使うAPIが違います。
動作は同じで、前方に見えない線を飛ばして壁を検知します。
|
1 2 3 4 5 6 |
// 2D の Raycast Physics2D.Raycast(pos, dir, dist, wallLayer); // 3D の Raycast Physics.Raycast(pos, dir, dist, wallLayer); |
「API 名が違うだけ」で、やっていることは同じです。
方向の変え方の違い
反転処理も 2D と 3D で書き方が変わります。
- 2D: sprite の左右反転(flipX)
- 3D: オブジェクトの回転(Quaternion)
|
1 2 3 4 5 6 |
// 2D の反転 sprite.flipX = !sprite.flipX; // 3D の反転 transform.Rotate(0, 180, 0); |
向きを変える方法が違うだけで、反転のタイミング(壁に当たったら方向転換など)は同じです。
ロジックは共通、違うのは「使うAPIだけ」
2D と 3D は世界が違うように見えますが、パトロールAIの仕組みそのものは変わりません。
- 進む
- 壁で反転する
- プレイヤーを見つけたら追尾に切り替える
この流れは共通です。違うのは「どのコンポーネント・どのAPIを使うか」だけなので、一度仕組みを理解すれば、2D/3D のどちらにも応用できます。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
初心者がつまずきやすいポイント
パトロールAIはシンプルな仕組みですが、実際に作ってみると「思った通りに動かない…」という場面がよくあります。
ここでは、初心者の方が特につまずきやすいポイントをまとめました。

- Raycast の向きが合っていないと壁検知は動かない
- Debug.DrawRay で可視化すると原因がすぐ分かる
- Rigidbody と transform の移動は混ぜない
- 視界判定だけでは壁越しに見えてしまうため遮蔽物チェックも検討
- 2D と 3D の API は互換性がないのでコピペ不可
もし挙動がうまくいかないときは、Raycast の向き・レイヤー・移動方法の3つを見直してみてください。
多くのバグはこのどれかで解決できます。
焦らず一つずつ確認していきましょう。
実践的なパトロールAI制作を学ぶには

ここまで、パトロールAIの作り方について解説してきました。
パトロールAIは、最も簡単なAIパターンです。
Unity入門の森では、Unityを使ったアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
アクションゲーム制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
まとめ

パトロールAIの作り方について解説しました。
要点のまとめ
- 2点巡回は、2つの地点を往復する
- 壁検知は、Raycastを使うことで実現
- 視界判定は、距離と角度を計算する
- 2D/3D対応の実装は、基本的な構造は同じ
基本を押さえれば、あとは応用していくだけです。
まずは、シンプルなパトロールAIから始めてみてください。
動かしながら理解を深めていくのが、上達への近道です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント