敵がルートを外れたり、ウェーブが重なって処理落ちする――そんな悩みを解決するための設計ポイントをまとめました。
経路・ウェーブ・到達判定をシンプルに作り、あとから複数経路や分岐を足せる構成にします。
✨ この記事でわかること
- Waypoint式の経路設計
- ウェーブスケジューラの実装
- 複数経路・分岐の扱い
- パフォーマンスを落とさない工夫

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

リスト化したポイントを順番にたどらせるだけで、ほとんどのTDは成立します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class PathFollower : MonoBehaviour { public List<Vector3> path; public float speed = 2f; private int idx = 0; void Update() { if (idx >= path.Count) return; Vector3 target = path[idx]; transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime); if (Vector3.Distance(transform.position, target) < 0.05f) idx++; if (idx == path.Count) BaseLife.Instance.TakeDamage(1); } } |
ポイント間を線形移動するだけなので負荷が低く、デバッグもしやすいです。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
ウェーブスケジューラ

各ウェーブの開始時刻と敵種類をキューで管理します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[System.Serializable] public class WaveEntry { public float startTime; public GameObject enemyPrefab; public int count; public float interval; public int pathIndex; } public class WaveScheduler : MonoBehaviour { public List<WaveEntry> entries; private float timer; void Update() { timer += Time.deltaTime; foreach (var entry in entries.Where(e => !IsSpawned(e) && timer >= e.startTime)) { StartCoroutine(SpawnWave(entry)); } } } |
開始時刻ベースにすると、演出に合わせて音やカメラも同期しやすくなります。
複数経路・分岐の扱い

パスを配列で持ち、WaveEntryのpathIndexで参照させます。分岐は「次のWaypointを条件で差し替える」だけでも実現可能です。
- 偶数ウェーブは上ルート、奇数は下ルートにする
- HPが減ったらショートカットする敵を混ぜる
- ボスは新ルートを開通させるイベントを仕込む
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
まとめ:経路・ウェーブ実装のポイント

Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
- Waypoint式でシンプルに動かす
- ウェーブを開始時刻とキューで管理する
- pathIndexで複数経路を切り替える
- 到達ダメージでゲームオーバーを明確にする
まずはシンプルに動かし、分岐や特殊敵を後から追加しましょう。実践を通じて学びたい場合は「Unity入門の森」の講座でTDやSRPGの制作手順を体系的に学べます。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント