[Unity 6] タワーディフェンスのリファクタリングと拡張 - 新規タワー4種とマップ制作の自動化

完成した2Dタワーディフェンスゲームを基に、機能を修正・拡張しやすいコード構造を作っていく実践中心の講座です。 1つのクラスに集約されていたタワーの機能を役割ごとに分離し、オブジェクトプーリングやイベントベースのUI、ScriptableObjectによるデータ分離を段階的に導入します。バフや減速効果の重複、敵の二重返却、ウェーブの二重開始など、複数のシステムが同時に動作する際に発生し得る問題についても扱います。 改善した構造を活用して、範囲攻撃・毒・連携攻撃・スタンのタワーを追加し、マップの移動経路データを自動生成するエディターツールまで制作します。実際にコードを修正して結果を確認しながら、共通機能をまとめる基準や、役割を分担する理由を学ぶことができます。

6名 が受講中です。

難易度 初級

受講期間 無制限

C#
C#
Unity
Unity
scriptable-object
scriptable-object
unity2d
unity2d
Unity6
Unity6
C#
C#
Unity
Unity
scriptable-object
scriptable-object
unity2d
unity2d
Unity6
Unity6

受講後に得られること

  • タワーの共通機能と種類ごとの機能を分離し、新しいタワーを追加しやすい構造を作ることができます。

  • オブジェクトプーリングを適用し、再利用される敵・発射体・体力UIの初期化と返却フローを管理できます。

  • イベントを利用して、体力・ゴールド・敵の数・ウェーブが変更された際にUIを更新できます。

  • バフと減速効果を発生源ごとに管理し、効果の重複と解除を処理できます。

  • ScriptableObjectでタワーとウェーブのデータを分離し、Inspectorの設定エラーを確認する機能を実装できます。

  • 共通攻撃構造を活用して、範囲攻撃・毒・連携攻撃・気絶タワーを実装できます。

  • Unityエディターツールを制作してマップの移動経路をデータとして生成し、複数のステージに適用できます。

自分で作ったタワーディフェンスをリファクタリングで構造を整え、新機能まで拡張してみましょう!

簡単で楽しい、ゴ博士のUnityシリーズ 🎲

実習で使用したすべてのリソースとPDFを提供します。

実習で使用したすべてのリソースはもちろん、462ページにわたる講義PDFも併せて提供します。

講義を視聴しながら、面倒な再生・一時停止を繰り返す必要はありません。丁寧にまとめられたPDFを見ながら、例題に沿って作成してみましょう

学習内容

Part 05. タワーの役割を分け、管理構造を改善する

タワーの種類ごとの機能が集まっていた既存のコードを確認し、共通機能と個別機能を区別します。初期化・アップグレード・売却は基底クラスで管理し、キャノン・レーザー・減速・バフタワーの動作と攻撃対象の探索機能を分離します。

以降、配置されたタワーの一覧を直接管理するように構造を改善します。バフと減速効果は、効果を発生させたタワーごとに保存し、複数の効果が重なった場合やタワーが売却された場合でも、残っている効果が正しく適用されるように実装します。データへのアクセス方法とログ出力も併せて整理します。


Part 06. オブジェクトプーリングとイベントでゲームシステムを安定化する

繰り返し生成・削除していた弾・敵・体力UIにオブジェクトプーリングを適用します。プールに返却された敵を追跡し続けてしまう問題など、再利用する際の注意点を確認し、オブジェクトの有効化・無効化に合わせて状態を管理します。

体力・ゴールド・敵数・ウェーブUIは、値が変更された際にイベントを受け取って更新する方式に切り替えます。イベントの購読と解除、System.ActionとUnityEventの違いを学び、敵の重複返却とウェーブの重複開始を防止します。ウェーブデータの分離とInspectorデータの検証によって、設定プロセスも改善します。


Part 07. タワーデータと攻撃構造を分離し、範囲攻撃を追加する

タワーの共通データと、攻撃・減速・バフなど種類ごとのデータを別々のScriptableObjectに分離します。既存のタワーのデータを新しい構造に移行しながら、機能に必要な情報を明確に構成する方法を学びます。

攻撃タワーと発射体に共通する動作を整理したうえで、爆発範囲内の複数の敵にダメージを与える範囲攻撃タワーを実装します。被弾エフェクトのプーリングや共通の配置プレビュー、タワー情報UIまで連携し、構造の改善が実際の機能拡張にどのように活用されるのかを確認します。


Part 08. 毒・連携攻撃・スタンのタワーで戦闘機能を拡張する

前で整理したタワーと発射体の構造を活用し、それぞれ異なる攻撃特性を持つタワーを追加します。

毒タワーは一定時間にわたって継続ダメージを与え、中毒効果の発生源と更新・終了時点を管理します。連携攻撃タワーは周囲の敵を順番に探索して攻撃をつなげ、スタン・タワーは敵の移動を一定時間停止させた後、状態を復元します。

各タワー専用のデータ、発射体、エフェクト処理とUIを連携させながら、共通して再利用する部分と個別に実装する部分を区別する練習をします。


Part 09. マップ経路データを自動生成するエディターツールを作る

複数の開始地点と到着地点、分岐路を持つステージを制作し、敵の移動経路を別のデータとして管理します。

Unityエディターで使用するPath Bakerを自ら実装し、マップのタイル情報を分析して移動経路をScriptableObject Assetとして生成します。生成した経路をウェーブデータとともにステージに接続し、敵がそのデータを利用して移動するように修正します。

マップを変更する際に繰り返していた経路設定をツールで自動化し、ゲーム機能だけでなく制作工程を改善する方法まで体験できます。

受講前の注意事項

  • この講義はUnity 6000.4.10f1バージョンで制作された講義で

    すべてのUnity 6バージョンで同様に動作します。(2026. 09. 26)

  • この講義は、既存の"[Unity 6] 手を動かしながら学ぶタワーディフェンスゲーム制作[入門]"コースをもとに、コード構造を改善し、機能を拡張する続編の実習コースです。

  • タワーの配置と攻撃、敵の移動、体力・ゴールド・ウェーブ、アップグレードと売却など、既存プロジェクトの基本的な流れを理解したうえで受講することを推奨します。

  • 既存コードの問題を確認し、必要な箇所を段階的に修正した後、実行結果を確認する形で進めます。

  • コードの修正とともに、プレハブのコンポーネント、Inspectorの参照、データAssetの設定も変更します。教材に案内されている設定手順にも従ってください。

  • 前で改善した構造を次のパートで活用するため、順番に実習することをおすすめします。データや参照を移行する途中の段階では、一部の機能が一時的に動作しない場合があります。

  • リファクタリングを通して共通機能をまとめる理由、クラスの役割を分ける基準、機能拡張時に確認すべき事項を、実際のプロジェクト内で学びます。

実習環境

  • オペレーティングシステムおよびバージョン(OS):Windows

  • 使用工具:Unity6、Visual Studio 2022

  • 実習プロジェクト:"[Unity6] 作りながら学ぶタワーディフェンスゲーム制作 [入門]" プロジェクト

学習教材

  • "教材PDF、教材内動画、リソース"をダウンロードして学習を進めてください。

  • PDF教材:コードの修正手順、主要な概念、プレハブとInspectorの設定を段階的に確認できます。

  • 教材内の動画および演習リソース:各機能の実行結果を確認し、演習に活用できます。

  • C#スクリプトファイル:作成したコードと比較しながら、誤字や抜け漏れがないか確認できます。

  • セクション別プロジェクトファイル:該当ステップのコード、オブジェクト構成、データ設定を確認して実行できます。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • "[Unity6] 実践しながら学ぶタワーディフェンスゲーム制作 [入門]"の講座を修了し、コード構造をさらに一段階発展させたい方

  • Unityでゲームを作ってみたものの、機能が増えるほどコードの修正が難しくなってしまう方

  • 継承、イベント、オブジェクトプーリング、ScriptableObjectを実際のゲームに適用してみたい方

  • 既存の構造を活用して、さまざまな攻撃方法や状態効果を実装したい方

  • データ管理やエディターツールの制作によって、反復作業を減らしたい方

前提知識、
必要でしょうか?

  • Unityエディターの基本操作とC#の基礎文法を理解しており、簡単なゲーム制作の経験がある方におすすめします。

  • C#の変数、条件文、繰り返し文、メソッド、クラス、配列やListなどの基本構文を理解しているとよいでしょう。

  • 既存のタワーディフェンスプロジェクトにおける敵の生成と移動、タワーの攻撃、ウェーブ進行の流れを理解していると、学習に役立ちます。

  • 継承、抽象クラス、メソッドのオーバーライド、イベント、ScriptableObjectを実習で使用します。関連する概念にあらかじめ触れておくと、コードの構造と流れを理解しやすくなります。

こんにちは
unitynoteです。

キャリア認証

14,710

受講生

281

受講レビュー

143

回答

4.9

講座評価

11

講座

主な経歴

現 2022 ~ 湖西大学校 ゲームソフトウェア学科 教授

現 2016 ~ 公州大学校 ゲームデザイン学科 講義専担教授

前 2022 ~ 2024 Unity公式認定インストラクター (Unity Certified Instructor)

前 2023 浦項工科大学校 電子電気工学科 外来教授

前 2022 又松大学校 テクノメディア融合学部(ゲームマルチメディア専攻)客員教授

前 2019 公州大学校 コンピュータ工学部 客員教授

前 2018 祥明大学校 写真映像コンテンツ学科 外来教授

前 2017 桂園芸術大学校 ゲームメディア科 非常勤講師

前 2016, 2020~2021 培材大学校 ゲーム学科 外来教授

前 2016年 南ソウル大学 VRAR 外来教授

前 2016 韓国映像大学校 ゲームアニメーション科 非常勤講師

前 2015 ~ 2018 白石大学校 情報通信学部 客員教授

「コ博士のUnityノート」YouTube運営 YouTube channel

https://www.youtube.com/@unitynote

紹介

ゲームプログラミング専攻でゲーム開発、Unityエンジンの講義を行っています。

講義分野:Unityエンジン(基礎、2D/3Dゲーム開発、VR/AR)、サーバー、人工知能、シェーダー、ゲーム学概論など

もっと見る

カリキュラム

全体

58件 ∙ (4時間 44分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

unitynoteの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥27,720

30%

¥4,982