Unity入門ブログシリーズ:目次
このシリーズは、Unity 6対応の教科書サンプルゲームを題材に、実際のコードを読み解きながらUnityとC#の基礎を学ぶ技術ブログです。 各記事は独立して読めますが、順番に読むと知識がスムーズに積み上がります。
このシリーズについて
「コードを写すだけ」で終わらないために、各記事ではなぜそのコードが必要なのかを丁寧に解説しています。ゲームを動かしながら、プログラミングの考え方を身につけましょう。
- 対象読者:Unity学び始めの方・C#をこれから覚えたい方
- 使用環境:Unity 6・新Input System対応
- 各記事の構成:記事の目次(セクションへのジャンプリンク)→ コード全体 → ポイント解説 → 処理フロー図 → カスタマイズ課題 → まとめ
100日Unityチャレンジ(ロードマップ)
長期の学習計画と、生成AIメンター用プロンプトです。
- IT初心者のための100日Unityマスターロードマップ(Day 1〜100)
- AIメンター用プロンプト(100日Unityチャレンジ)(カスタム指示に貼る全文)
記事一覧
Chapter 3|Rouletteゲーム入門
マウスをクリックするとルーレットが回転するゲームで、UnityとC#の基礎中の基礎を学びます。
| # | 学習ポイント |
|---|---|
| ① | using ってなに?(名前空間) |
| ② | クラスと MonoBehaviour |
| ③ | 変数でスピードを管理する |
| ④ | Start() と Update() の違い |
| ⑤ | 入力の受け取り方 |
| ⑥ | ルーレットを回す(transform.Rotate()) |
Chapter 4|SwipeCarゲーム入門
マウスをスワイプして車を動かすゲームで、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 による種別判定
UI:TextMeshProUGUI でテキスト表示、Image.fillAmount でゲージ表示、AudioSource で効果音再生
ゲーム設計:タイマー・スコア・難易度の動的変化、SceneManager によるシーン切り替え、スプライトアニメーション
最終更新:2026年4月