学習記事一覧 · Unity本格入門

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.onClickSceneManager.LoadScene()
SaveData とシングルトン Instance
JsonUtilityPlayerPrefs で永続化する
セーブキーを型ごとに分ける考え方(SavableSingletonBase
static でシーン間にスコアを渡す
ハイスコア更新時に Save() する

第2回|メインシーンの時間と昼夜

Unity本格入門:いきのこバトルで学ぶメインシーンの時間と昼夜

MainSceneControllerRoundLight、コルーチン・DOTween・ゲームオーバー遷移を扱います。

# 学習ポイント
SingletonMonoBehaviourInSceneBase とシーン内シングルトン
MinutesInGame で時間・満腹・ライトを一括更新
RoundLight で平行光の向きを変える
昼夜判定と DOTween で Light.intensity を変える
コルーチン TimerLoop でゲーム内時間を刻む
GameOver と遅延後のシーン遷移
PassedDay と経過日数

第3回|プレイヤーと新 Input System

Unity本格入門:いきのこバトルで学ぶプレイヤーと新 Input System

PlayerController の移動・攻撃・投擲の流れ、PlayerInputCharacterController を扱います。

# 学習ポイント
[RequireComponent] で依存を明示する
PlayerInputFindAction
ReadValue<Vector2>() と移動
CharacterController と重力・ジャンプ
WasPressedThisFrame / WasReleasedThisFrame
EventSystem で UI クリックと攻撃を分ける
レイキャスト・Instantiate による投擲の概要

第4回|敵スポーンと NavMesh

Unity本格入門:いきのこバトルで学ぶ敵スポーンと NavMesh

Spawner / SpawnerManager、NavMesh 上への生成、難易度とリスト管理を扱います。

# 学習ポイント
SpawnerSpawnerManager の分業
SpawnLoop コルーチン
PassedDay とスポーン間隔・距離
NavMesh.SamplePositionInstantiate
距離で Destroy して負荷を抑える
List と LINQ で null 除去
IsSpawnable で同時存在数の上限

第5回|UI とメニュー

Unity本格入門:いきのこバトルで学ぶ UI とメニュー

Menu・ポーズ・ItemsDialogRecipeDialogLifeGauge を扱います。

# 学習ポイント
Menu のシングルトンとボタン登録
Time.timeScale でポーズと再開
Update でスコア表示と投げオノ数を同期
Legacy Cancel と ESC の処理の優先順位
ItemsDialog とスロットの量産
ToggleOwnedItems のバインド
LifeGaugefillAmount と座標変換
RecipeDialog の開閉

第6回|所持品データとオーディオ

Unity本格入門:いきのこバトルで学ぶ所持品データとオーディオ

OwnedItemsData の保存と AudioManagerDontDestroyOnLoadResources)を扱います。

# 学習ポイント
OwnedItemsDataInstance と private コンストラクタ
JSON と固定キーで PlayerPrefs に保存
Add / Use / GetItem
OwnedItem[Serializable]
AudioManagerDontDestroyOnLoad
二重インスタンスの防止
Resources.LoadAll で SE を辞書化
PlayItemButton からの呼び出し

今後の題材

別のゲームや題材の記事を同じ Unity本格入門 カテゴリに追加する場合は、必要に応じて 別の 00-目次 をフォルダ分けすると整理しやすいです。


最終更新:2026年4月