勉強会で得た知識を備忘録がてら記録します。
参考書籍紹介
以下の書籍を参考にする。
アジェンダ
- 準備
- ゲームの設計を考える
- プロジェクトの作成
- オブジェクトの配置
- スクリプト製作
- スマートフォンで動かしてみる
- 次回内容紹介
1. 準備
iPhoneでゲームを動かすには...XCodeが必要
Androidでゲームを動かすには...JDKとAndroid Studioが必要
設定方法は割愛する
2. ゲームの設計を考える
2-1. ゲームの企画を作る
占いルーレットを製作する。
画面上にルーレットが表示されており、画面をタップするとルーレットが回転をはじめ、時間が経過するにつれて回転速度が遅くなる。
2-2. ゲームの部品を考える
本書では以下のステップに沿って設計を考える。
- 画面上のオブジェクトを全て書き出す
- オブジェクトを動かすためのコントローラスクリプトを決める
- オブジェクトを自動更新するためのジェネレータスクリプトを決める
- UIを更新するための監督スクリプトを用意する
- スクリプトを作る流れを決める
今回製作したゲームでは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. 次回内容紹介
車の旗をギリギリ手前で止める「寸止めゲーム」を作成する。