Learn Unity 4 for iOS Game Development 9

ゲーム GUI

作ったもの
・ボウリング・ゲームへのスコアボード/メニュー画面/ポーズ機能の実装(エスケープキーで、一時停止できます)。

クリックすると、別ウィンドウが開きます。(音が出ます。)
Screen-Shot-2013-08-18-at-15.05_600
http://shakeweb.sakura.ne.jp/demo/LU4_chap9/

————————————————————————————————
スコアボードの実装

・シーンにスコアボード用の空の GameObject を用意して、スクリプトを適用する。

・GUI クラスのラベルにテキストで表示。

————————————————————————————————
メニュー画面/一時停止機能の実装

・一時停止機能が付いていないと、アップルの審査に落とされることがある。
・メニュー画面/一時停止機能用の空の GameObject を用意して、スクリプトを適用する。

・FSM と同じように、それぞれのページのステートを用意する。

・Time.timeScale をゼロにすると、ゲーム中の動きが止まる。反対に、保存しておいた元の timeScale に戻すと、動き出す。同様に、timeScale の値を見れば、停止しているかどうか判定できる。

・ゲーム開始時に、ゲームを一時停止させ、メニュー画面を表示させる。

・escape キーで、’一時停止’/’停止解除’/’サブメニュー画面からのメインメニュー画面への遷移’を制御できるように、Update() 関数でキーボード入力を監視する。

・一時停止中は Time.deltaTime の値がゼロになり、ゼロで割るエラーを引き起こしてしまうので、ボールの動きを制御するスクリプトを修正する。

・メニュー画面の表示を OnGUI() 関数で制御。

・OnGUI() コールバックは、1フレーム中に複数回呼び出されるので、一時停止中かどうか、常に監視される。

・GUILayout クラスの BeginArea() 関数で GUI の表示領域の指定を開始し、EndArea() 関数で終了する。

・GUILayout.Button(“Back”) は、これ自体でボタンを表示させ、ボタンが押されたら、戻り値が true になる。尚、この関数は、一時停止中は OnGUI() 関数経由で常に監視され続ける。

・メインメニュー表示。

・一時停止中は、OnGUI() 関数経由で常に監視され続ける。ボタンが押されると、OnGUI() の switch 文で別ページに遷移する。

・クレジット・ページ。

・オプション・ページ。

・GUILayout.Toolbar に渡す toolbarStrings で、ボタンに表示する名前を指定。toolbarIndex で選択されているボタンを指定。また、この関数は選択されているボタンのインデックスを int 型で返す。ShowOptions() 関数は、OnGUI() 経由で常に監視されているので、ボタンが選択されると、すぐさま、インデックスの値が変数 toobaIndex に代入され、Toolbar() に渡される値に反映されて、表示が切り替わる。

・オーディオ・パネル。

・グラフィクス・パネル

・QualitySettings.GetQualityLevel() が int 型で値を返すので、それをインデックスとして配列 name から表示する名前を引っ張ってくる。

・システム・パネル。

・Available() がエラーになるため、使用を断念。Unity Pro なら使えるのだろうか。

————————————————————————————————
アセットストア(GUI 関連)

EZGUI (Above and Beyond Software)
NGUI (Tasharen Entertainment)

ページトップへ