学習記事一覧 · Unity教科書_Unity6対応

Unity入門ブログシリーズ:目次

このシリーズは、Unity 6対応の教科書サンプルゲームを題材に、実際のコードを読み解きながらUnityとC#の基礎を学ぶ技術ブログです。 各記事は独立して読めますが、順番に読むと知識がスムーズに積み上がります。


このシリーズについて

「コードを写すだけ」で終わらないために、各記事ではなぜそのコードが必要なのかを丁寧に解説しています。ゲームを動かしながら、プログラミングの考え方を身につけましょう。

  • 対象読者:Unity学び始めの方・C#をこれから覚えたい方
  • 使用環境:Unity 6・新Input System対応
  • 各記事の構成:記事の目次(セクションへのジャンプリンク)→ コード全体 → ポイント解説 → 処理フロー図 → カスタマイズ課題 → まとめ

100日Unityチャレンジ(ロードマップ)

長期の学習計画と、生成AIメンター用プロンプトです。


記事一覧

Chapter 3|Rouletteゲーム入門

Unity入門:ルーレットゲームを作りながら学ぼう!

マウスをクリックするとルーレットが回転するゲームで、UnityとC#の基礎中の基礎を学びます。

# 学習ポイント
using ってなに?(名前空間)
クラスと MonoBehaviour
変数でスピードを管理する
Start()Update() の違い
入力の受け取り方
ルーレットを回す(transform.Rotate()

Chapter 4|SwipeCarゲーム入門

Unity入門:スワイプカーゲームを作りながら学ぼう!

マウスをスワイプして車を動かすゲームで、2スクリプトの役割分担とリアルタイムUI更新を学びます。

# 学習ポイント
2種類のマウス入力を使い分ける
Vector2 で座標を記憶する
スワイプの長さを速度に変換する
transform.Translate() で移動する
GameObject.Find() でオブジェクトを取得する
リアルタイムで距離を表示する(TextMeshProUGUI

Chapter 5|CatEscapeゲーム入門

Unity入門:矢をよけろ!CatEscapeゲームを作りながら学ぼう!

上から降る矢をよけるゲームで、プレハブの量産・衝突判定・HPゲージという実践的な要素を学びます。

# 学習ポイント
キーボード入力で瞬時に移動する
Time.deltaTime でフレームレートによらない時間管理をする
プレハブから Instantiate() でオブジェクトを量産する
Destroy() でオブジェクトを削除してメモリを節約する
円と円の距離で当たり判定をする
スクリプト間でメソッドを呼び出して連携する
Image.fillAmount でHPゲージを表現する

Chapter 6|ClimbCloudゲーム入門

Unity入門:雲を踏んで頂上を目指せ!ClimbCloudゲームを作りながら学ぼう!

雲の足場を踏みながら頂上を目指すゲームで、物理演算・スプライトアニメーション・シーン管理を学びます。

# 学習ポイント
Rigidbody2D で物理演算を使う
AddForce() で力を加えて動かす
linearVelocityY == 0 で二段ジャンプを防ぐ
最大速度を上限として自動歩行する
スプライト配列と 1 - idx でアニメーションする
SceneManager.LoadScene() でシーンを切り替える
OnTriggerEnter2D() でゴール判定をする
public フィールドでInspectorから設定する

Chapter 7|Igaguriゲーム入門

Unity入門:3Dで的を狙え!Igaguriゲームを作りながら学ぼう!

クリックした方向にいがぐりを飛ばすゲームで、2Dから3Dへのステップアップと、レイキャスト・パーティクルを学びます。

# 学習ポイント
2Dと3Dの物理コンポーネントの違い(Rigidbody vs Rigidbody2D
Camera.main.ScreenPointToRay() で画面クリックを3D方向に変換する
公開メソッドでいがぐりを「外から操作する」
OnCollisionEnter() で3D衝突を検知する
isKinematic = true で物理演算を動的に止める
ParticleSystem.Play() でエフェクトを再生する

Chapter 8|AppleCatchゲーム入門

Unity入門:リンゴをキャッチしてスコアを稼げ!AppleCatchゲームを作りながら学ぼう!

落ちてくるリンゴをキャッチする3Dゲームで、タグ判定・サウンド・タイマー・動的難易度設計を学びます。

# 学習ポイント
Physics.Raycast() で3D空間のクリック位置を取得する
Mathf.RoundToInt() でグリッドにスナップする
tag でオブジェクトの種類を判別する
AudioSource.PlayOneShot() で効果音を再生する
タイマーで難易度を段階的に変化させる
SetParameter() で外部からパラメータを一括変更する
確率でボムとリンゴを出し分ける
生成時にコンポーネントのパラメータを注入する

学習ロードマップ

【基礎】                【応用】                 【3D入門】
Chapter 3              Chapter 5               Chapter 7
Roulette               CatEscape               Igaguri
  ↓                      ↓                       ↓
using / クラス         Instantiate / Destroy   ScreenPointToRay
Start / Update         当たり判定              Rigidbody(3D
transform.Rotate()     HPゲージ               ParticleSystem

Chapter 4              Chapter 6               Chapter 8
SwipeCar               ClimbCloud              AppleCatch
  ↓                      ↓                       ↓
Vector2                Rigidbody2D             Physics.Raycast
GameObject.Find()      AddForce()              タグ判定
TextMeshProUGUI        SceneManager            難易度設計

シリーズを通じて学べること

このシリーズを読み終えると、以下の技術が身についています。

入力:マウスクリック・スワイプ・キーボード・3Dレイキャストによるクリック検出

移動と物理Translate による直接移動、Rigidbody / Rigidbody2D を使った物理ベースの動き、AddForce による力の制御

オブジェクト管理Instantiate でプレハブから量産、Destroy で削除、GameObject.Find / GetComponent でスクリプト間連携

衝突判定:手動の距離計算、OnCollisionEnter / OnTriggerEnter(2D・3D両対応)、tag による種別判定

UITextMeshProUGUI でテキスト表示、Image.fillAmount でゲージ表示、AudioSource で効果音再生

ゲーム設計:タイマー・スコア・難易度の動的変化、SceneManager によるシーン切り替え、スプライトアニメーション


最終更新:2026年4月