スマホで遊べる!Unityジャンプゲーム制作講座 解説編 | Input System・時間管理・ステージ管理を学ぶ
本講座は、Unityの基本操作やC#の基礎を学んだ方を対象にした、スマホ対応ジャンプゲーム制作講座です。
UnityやC#の基礎を学習したい方は、こちらのマガジンがおすすめです。
「次は、実際に遊べるゲームを完成させてみたい」
「作ったゲームをスマートフォンで動かしてみたい」
と思ったことはありませんか?
本講座では、主人公をジャンプで上空へ進ませ、さまざまな仕掛けを乗り越えてゴールを目指す、スマホ対応のジャンプゲームを制作します。

全8回の記事を順番に進めることで、プレイヤーの移動やジャンプだけでなく、ブロックの自動配置、動く足場、障害物、ステージ管理、クリア演出まで実装します。
ご興味がある方は、こちらのマガジン8回セットに空くセ氏してみてください。
最終的には、Androidスマートフォンで実際に遊べる、1本のゲームとして完成させることが目標です。
さまざまな仕掛けを持つブロックを作成
ゲームには、通常の足場だけでなく、さまざまな特徴を持つブロックが登場します。
滑りやすいブロック
高く跳ねるブロック
幅の狭いブロック
下から通過できないブロック
左右に動くブロック
円を描いて動くブロック
乗ると時間差で落下するブロック
一定時間ごとに点滅するブロック
講座が進むにつれて新しい仕掛けが増え、ゲームらしいステージへと少しずつ発展していきます。
単に完成済みのコードを書き写すのではなく、各機能がどのような仕組みで動いているのかを確認しながら制作します。
Androidスマートフォンで実際に動かす
本講座では、Android端末での実機確認を前提に進めます。
Unity上で動作を確認するだけでなく、スマートフォン向けの操作ボタンを作成し、Android端末へゲームをインストールして遊べる状態を目指します。
iPhone向けのビルドにはMacやXcodeなどの環境が必要になるため、本講座では、Windows環境でも進めやすいAndroidビルドを中心に解説します。
PCのキーボード操作とスマートフォンの画面操作の両方に対応させるため、制作途中の動作確認も行いやすくなっています。
この講座で身につくこと
本講座では、1本のゲームを制作しながら、次のようなUnityの機能やプログラミングを学びます。
Input Systemを使ったプレイヤー操作
PCとスマートフォンの両方に対応した入力処理
スマホ用の左右移動・ジャンプボタンの作成
Androidビルド環境の構築と実機確認
Rigidbody2DやCollider2Dを使った物理処理
Physics Material 2Dを使った滑りや反発の表現
配列とfor文を使ったブロックの自動配置
InstantiateによるPrefabの生成
Time.deltaTimeを使った時間管理
三角関数を使ったブロックの移動
コルーチンを使った時間差処理
ステージごとの難易度管理
スタート・ステージクリア・ゲームクリアシーンの作成
個別に学ぶと使いどころが分かりにくい機能も、実際のゲームに組み込むことで、その役割を理解しやすくなります。
「動かす」だけでなく「遊びやすさ」も考える
ゲームは、キャラクターが動けば完成というわけではありません。
本講座では、プログラムを作成するだけでなく、
どうすればゲームとして遊びやすくなるのか
どうすればスマートフォンでも操作しやすくなるのか
という点も考えながら制作を進めます。
たとえば、プレイヤーの移動範囲、ジャンプできる条件、カメラの追従方法、ブロックの配置間隔、スマートフォン用ボタンの押しやすさなども調整します。
ゲームを作る技術だけでなく、実際に遊ぶ人の立場で考えることも、本講座の大切なポイントです。
こんな方におすすめ
この講座は、次のような方におすすめです。
Unityの初級講座を終えて、次のステップへ進みたい方
スマートフォンで遊べるゲームを作ってみたい方
Input Systemを使った操作方法を学びたい方
Rigidbody2DやCollider2Dをゲーム内で活用したい方
Time.deltaTimeやコルーチンの使い方を学びたい方
三角関数をゲーム内の動きに利用してみたい方
ブロックや障害物を使ったジャンプゲームを作りたい方
Android端末で自作ゲームを動かしてみたい方
複数のステージを持つゲームを完成させたい方
UnityやC#を初めて使う方向けではなく、基本的な操作やスクリプト作成を経験した方を対象とした、ステップアップ講座です。
講座のゴール
全8回を終えるころには、Androidスマートフォンで遊べるジャンプゲームが完成します。
ステージごとに登場するブロックの種類や数が変わり、プレイヤーはさまざまな仕掛けや障害物を乗り越えながらゴールを目指します。
ゴールへ到達するとステージクリア画面へ移動し、次のステージへ進みます。最後のステージをクリアすると、ゲームクリア画面が表示されます。
「キャラクターを動かせる」だけで終わらず、
ステージ構成
スマートフォンでの操作
難易度の変化
障害物や特殊ブロック
ステージクリア判定
シーンの切り替え
最後まで遊べるゲームの流れ
まで含めて、1本の作品として仕上げていきます。
全8回の講座内容
第1回|Androidビルド環境とInput Systemの準備
最初に、Androidスマートフォン向けのゲームを制作するための環境を整えます。
また、新しい入力システムであるInput Systemを導入し、プレイヤー操作に必要な設定を行います。
主な内容
Android Build Supportの確認
Android SDK・NDK・OpenJDKの確認
Android向けビルド設定
Input Systemの導入
Action Mapの作成
Move・Jump Actionの設定
InputActionReferenceの基本
第2回|Playerの移動・ジャンプ・スマホ操作
Playerを左右に移動させ、ジャンプできるようにします。
キーボードだけでなく、スマートフォン画面に表示したボタンからも操作できるようにし、PCとスマートフォンの両方に対応させます。
主な内容
Playerの左右移動
ジャンプ処理の作成
接地判定の作成
アニメーションとの連携
スマホ用UIボタンの作成
左・右・ジャンプボタンの操作
PC操作とスマホ操作の両対応
Playerの移動範囲の制限
第3回|特徴の異なる物理ブロックを作る
ジャンプゲームの足場となる、さまざまなブロックを作成します。
Physics Material 2DやPlatform Effector 2Dを利用し、滑る、跳ねる、下から通過できるといった違いを表現します。
主な内容
BaseBlockの作成
HardBlockの作成
NarrowBlockの作成
SlipBlockの作成
BoundBlockの作成
GoalBlockの作成
Physics Material 2Dの活用
Platform Effector 2Dによるすり抜け設定
TagとLayerの整理
背景画像の作成
カメラ追従プログラムの作成
第4回|配列を使ってブロックを自動配置する
ブロックを1つずつ手作業で配置するのではなく、スクリプトから自動で生成します。
配列、for文、Instantiate、Random.Rangeを組み合わせ、複数種類のブロックを上空へ並べていきます。
主な内容
ブロックPrefabの準備
配列によるブロック管理
for文を使った繰り返し処理
Instantiateによるブロック生成
Random.Rangeによる位置調整
上空に向かってブロックを並べる処理
最後にGoalBlockを配置する処理
第5回|Time.deltaTimeで動くブロックを作る
静止したブロックだけでなく、左右や円形に動くブロックを作成します。
Time.deltaTimeを使い、パソコンやスマートフォンの性能に左右されにくい、時間を基準にした動きを実装します。
主な内容
SlideBlockの作成
三角関数を使った左右移動
CircleBlockの作成
円を描くブロックの動き
Time.deltaTimeによる時間管理
動くブロック上での着地判定
第6回|コルーチンでFallBlockを作る
Playerが乗ったあと、一定時間が経過すると落下するFallBlockを作成します。
コルーチンを利用し、「1秒待ってから処理する」といった時間差のある動きを実装します。
主な内容
FallBlockの作成
乗ってから1秒後に落下する処理
StartCoroutineの使い方
IEnumeratorの基本
WaitForSecondsによる待機処理
一度だけ処理するためのフラグ管理
Time.deltaTimeとコルーチンの違い
第7回|BlinkBlockと障害物を追加する
一定時間ごとに表示と非表示を繰り返すBlinkBlockを作成します。
さらに、鳥、UFO、飛行機などの障害物を追加し、避けながら進むゲームらしいステージへ発展させます。
主な内容
BlinkBlockの作成
表示・非表示の切り替え
Time.deltaTimeを使った時間管理の復習
Collider2DのON・OFF
鳥・UFO・飛行機などの障害物作成
Enemyの移動処理
Layer Collision Matrixの設定
Playerとの接触判定
第8回|ステージ管理とシーン演出
最後に、複数ステージを管理する仕組みを作成します。
ステージが進むにつれてブロックの数や種類が変わるようにし、スタート画面、ステージクリア画面、ゲームクリア画面も追加します。
主な内容
ステージ番号の管理
ステージごとのブロック数の変更
ステージごとのブロック種類の変更
クリア判定の作成
スタートシーンの作成
ステージクリアシーンの作成
ゲームクリアシーンの作成
次のステージへ進むボタンの作成
Android実機での最終確認
料金とサポートについて
本講座は、全8回セットで5,980円です。
ご購入いただいた方には、講座を進める中で分からない点や、記事どおりに進めても動作しない場合などについて、メール等によるサポートを行います。
記事は順次公開・更新予定です。マガジンをご購入いただくと、購入後に追加された記事も引き続きお読みいただけます。
※サポート内容や連絡方法、回答までの目安などは、あらかじめ案内しておくと購入者にも分かりやすくなります。
Unityで「自分のゲーム」を完成させよう
Unityの機能を個別に学んでいると、
「この機能を、実際のゲームでどう使えばよいのだろう?」
と迷うことがあります。
本講座では、Input System、物理処理、配列、三角関数、Time.deltaTime、コルーチン、ステージ管理といった機能を、1本のジャンプゲームの中に組み込んでいきます。
学んだ機能が実際に動き、ゲームが少しずつ完成に近づいていく過程を楽しみながら進められる講座です。
Unityの基礎を学び終えた方は、次のステップとして、スマートフォンで遊べるゲーム制作に挑戦してみましょう。
ここから先は

Unityの基本操作やC#の基礎を学んだ方向けの、Androidスマホ対応ジャンプゲーム制作講座です。全8回を順番に進めながら、Input…
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!
