Unityでスマートフォン向けゲームを開発する
参考書籍紹介
Unityの教科書Unity2018完全対応版
https://www.sbcr.jp/products/4797397659.html
アジェンダ
1.準備
2.ゲームの設計を考える
3.プロジェクトの作成
4.オブジェクトの配置
5.スクリプト製作
6.スマートフォンで動かしてみる
7.次回内容紹介
1.準備
iPhoneでゲームを動かすには...XCodeが必要
Androidでゲームを動かすには...JDKとAndroidStudioが必要
設定方法は割愛する
2.ゲームの設計を考える
2‑1.ゲームの企画を作る
占いルーレットを製作する。
画面上にルーレットが表示されており、画面をタップするとルーレット
が回転をはじめ、時間が経過するにつれて回転速度が遅くなる。
2‑2.ゲームの部品を考える
本書では以下のステップに沿って設計を考える。
1.画面上のオブジェクトを全て書き出す
2.オブジェクトを動かすためのコントローラスクリプトを決める
3.オブジェクトを自動更新するためのジェネレータスクリプトを決め
る
4.UIを更新するための監督スクリプトを用意する
5.スクリプトを作る流れを決める
今回製作したゲームでは3と4不要のため、省略する。
2‑2.ゲームの部品を考える(画面上のオブジェクトを全て書き出す)
今回は針とルーレットを使用する。
2‑2.ゲームの部品を考える(オブジェクトを動かすためのスクリプ
トを決める)
今回はルーレットオブジェクトを動かす。
動かすオブジェクトにはオブジェクトの動きを制御するスクリプトが必
要となる。
オブジェクトを動かすためのスクリプトを"コントローラスクリプト"と
呼ぶ。
2‑2.ゲームの部品を考える(オブジェクトを自動更新するためのジ
ェネレータスクリプトを決める)
このステップではゲームプレイ時に生成されるオブジェクトを探す。
プレイヤの移動や時間経過によって出現するものが当てはまる。
例)敵キャラ、ステージの足場
ゲームプレイ時にオブジェクトを生成するスクリプトを"ジェネレータス
クリプト"と呼ぶ。
ジェネレータスクリプトはオブジェクトを生成する工場のようなもので
ある。
2‑2.ゲームの部品を考える(UIを更新するための監督スクリプトを
用意する)
ゲームのUIを操作したり、進行状況を判断したりするためにゲーム全体
を見渡せるスクリプトが必要になる。
そういったスクリプトのことを"監督スクリプト"と呼ぶ。
2‑2.ゲームの部品を考える(スクリプトを作る流れを決める)
以上のステップで洗い出したスクリプトからどのようにゲームを作って
いくかを考える。
基本的には「コントローラスクリプト」→「ジェネレータスクリプト」
→「監督スクリプト」の順番で製作する。
今回はルーレットを動かすためのルーレットコントローラのみ作れば良
い。
3.プロジェクトの作成
4.オブジェクトの配置
省略。
5.スクリプト製作
"マウスのクリックに応じてルーレットを回転させ、減速して止まる仕組
み"を作成する。
5‑1.クリックすると一定の速さの回転するスクリプト
public class RouletteController : MonoBehaviour {
//回転速度
float rotSpeed = 0;
void Start () {
}
void Update () {
//マウスが押されたら回転速度を設定する。
if(Input.GetMouseButtonDown(0)){
this.rotSpeed = 20;
}
//回転速度分、ルーレットを回転させる
transform.Rotate(0,0,this.rotSpeed);
}
}
5‑2.ルーレットを減速させる処理を追加する
public class RouletteController : MonoBehaviour {
//回転速度
float rotSpeed = 0;
void Start () {
}
void Update () {
//マウスが押されたら回転速度を設定する。
if(Input.GetMouseButtonDown(0)){
this.rotSpeed = 20;
}
//回転速度分、ルーレットを回転させる
transform.Rotate(0,0,this.rotSpeed);
//ルーレットを減速させる
this.rotSpeed *= 0.99f;
}
}
6.スマートフォンで動かしてみる
iOSの場合、Unityのプロジェクトを一旦iOSのプロジェクトへと変換
し、iOS用のコンパイラ(Xcode)を利用して、iPhoneに書き込む必要
がある。
7.次回内容紹介
車の旗をギリギリ手前で止める「寸止めゲーム」を作成する。

Unityでスマートフォン向けゲームを開発する