Unity本格入門ブログシリーズ:目次
このシリーズは、技術評論社刊『作って学べる Unity本格入門[Unity 6対応版]』(賀好 昭仁 著)に沿った記事として、いきのこバトルなどの題材のコードを読み解きながら学ぶ技術ブログです。
Unity教科書_Unity6対応(教科書サンプルゲーム連載)とは別シリーズです。併読は可能ですが、章番号や前提は共通ではありません。
書籍・著作について
- 出典: 技術評論社刊『作って学べる Unity本格入門[Unity 6対応版]』(賀好 昭仁 著)。本サイトは出版社・著者の公式サイトではありません。
- 本ブログの位置づけ: 題材プロジェクトのコードを読み解く学習補助の解説です。書籍の代替提供を目的とせず、**コード掲載は学習上必要な範囲(必要最小限)**にとどめます。
- 著作権・サンプルの利用: 書籍に関する権利は出版社・著者に帰属します。サンプル等の利用条件は、書籍記載(P.4〜5)および出版社サポート情報に従ってください。
このシリーズについて
- 対象読者:Unity と C# のコードを追いながら読み進められる方
- 各記事の構成:Unity教科書シリーズと同様、目次(ジャンプリンク)→ コード → ポイント解説 → フロー → カスタマイズ → まとめ、を基本とします
- いきのこバトル(IkinokoBattle) は第1回から第6回まで、プロジェクトの主要な読み筋を分解しています(順に読むと流れが掴みやすいです)
記事一覧(いきのこバトル)
第1回|タイトル・セーブデータ
Unity本格入門:いきのこバトルで学ぶタイトル・セーブデータ
タイトル・ゲームオーバー・ハイスコア保存に絞って読み解きます。UIボタン、PlayerPrefs と JSON、シングルトン型のセーブデータを学びます。
| # | 学習ポイント |
|---|---|
| ① | uGUI の Text でハイスコアを表示する |
| ② | Button.onClick と SceneManager.LoadScene() |
| ③ | SaveData とシングルトン Instance |
| ④ | JsonUtility と PlayerPrefs で永続化する |
| ⑤ | セーブキーを型ごとに分ける考え方(SavableSingletonBase) |
| ⑥ | static でシーン間にスコアを渡す |
| ⑦ | ハイスコア更新時に Save() する |
第2回|メインシーンの時間と昼夜
Unity本格入門:いきのこバトルで学ぶメインシーンの時間と昼夜
MainSceneController と RoundLight、コルーチン・DOTween・ゲームオーバー遷移を扱います。
| # | 学習ポイント |
|---|---|
| ① | SingletonMonoBehaviourInSceneBase とシーン内シングルトン |
| ② | MinutesInGame で時間・満腹・ライトを一括更新 |
| ③ | RoundLight で平行光の向きを変える |
| ④ | 昼夜判定と DOTween で Light.intensity を変える |
| ⑤ | コルーチン TimerLoop でゲーム内時間を刻む |
| ⑥ | GameOver と遅延後のシーン遷移 |
| ⑦ | PassedDay と経過日数 |
第3回|プレイヤーと新 Input System
Unity本格入門:いきのこバトルで学ぶプレイヤーと新 Input System
PlayerController の移動・攻撃・投擲の流れ、PlayerInput・CharacterController を扱います。
| # | 学習ポイント |
|---|---|
| ① | [RequireComponent] で依存を明示する |
| ② | PlayerInput と FindAction |
| ③ | ReadValue<Vector2>() と移動 |
| ④ | CharacterController と重力・ジャンプ |
| ⑤ | WasPressedThisFrame / WasReleasedThisFrame |
| ⑥ | EventSystem で UI クリックと攻撃を分ける |
| ⑦ | レイキャスト・Instantiate による投擲の概要 |
第4回|敵スポーンと NavMesh
Unity本格入門:いきのこバトルで学ぶ敵スポーンと NavMesh
Spawner / SpawnerManager、NavMesh 上への生成、難易度とリスト管理を扱います。
| # | 学習ポイント |
|---|---|
| ① | Spawner と SpawnerManager の分業 |
| ② | SpawnLoop コルーチン |
| ③ | PassedDay とスポーン間隔・距離 |
| ④ | NavMesh.SamplePosition と Instantiate |
| ⑤ | 距離で Destroy して負荷を抑える |
| ⑥ | List と LINQ で null 除去 |
| ⑦ | IsSpawnable で同時存在数の上限 |
第5回|UI とメニュー
Menu・ポーズ・ItemsDialog・RecipeDialog・LifeGauge を扱います。
| # | 学習ポイント |
|---|---|
| ① | Menu のシングルトンとボタン登録 |
| ② | Time.timeScale でポーズと再開 |
| ③ | Update でスコア表示と投げオノ数を同期 |
| ④ | Legacy Cancel と ESC の処理の優先順位 |
| ⑤ | ItemsDialog とスロットの量産 |
| ⑥ | Toggle と OwnedItems のバインド |
| ⑦ | LifeGauge の fillAmount と座標変換 |
| ⑧ | RecipeDialog の開閉 |
第6回|所持品データとオーディオ
Unity本格入門:いきのこバトルで学ぶ所持品データとオーディオ
OwnedItemsData の保存と AudioManager(DontDestroyOnLoad・Resources)を扱います。
| # | 学習ポイント |
|---|---|
| ① | OwnedItemsData の Instance と private コンストラクタ |
| ② | JSON と固定キーで PlayerPrefs に保存 |
| ③ | Add / Use / GetItem |
| ④ | OwnedItem と [Serializable] |
| ⑤ | AudioManager と DontDestroyOnLoad |
| ⑥ | 二重インスタンスの防止 |
| ⑦ | Resources.LoadAll で SE を辞書化 |
| ⑧ | Play と ItemButton からの呼び出し |
今後の題材
別のゲームや題材の記事を同じ Unity本格入門 カテゴリに追加する場合は、必要に応じて 別の 00-目次 をフォルダ分けすると整理しやすいです。
最終更新:2026年4月