Unity5.0.0f4 Personal(2015年5月)
前回の続きです〜
今回は制限時間を設定し、制限時間を経過するとゲームオーバーとなる機能を実装したいと思います〜
【目標】制限時間とゲームオーバー機能を実装し、ゲームを完成させる!
【課題1】制限時間のGUIを表示させる
まずは制限時間を表示するGUI(Text)をゲーム画面へ取り付けましょう〜HierarchyからCreate>UI>Textを選択し、名前はTimeにします〜
GUI(Text)作成
GUI(Text)設定
画面右上に制限時間のGUI(Text)作成
【課題2】カウントダウン機能を付ける
続いてスクリプトを作ります〜TimeScriptを作成し、先ほど作成したTimeオブジェクトに取り付けます〜以下ソースです!
制限時間は60秒とし、Startメソッドで表示し、Time.deltaTimeをマイナスしていくことで1秒に1ずつカウントダウンしています〜
時間を表示する際に、そのまま表示すると小数点まで付いてしまうため、(int)を変数の前へ置いてfloat型からint型へ変換しております〜これをCastと言います〜
次に、Castした変数を更にToStringにてString型へ変換しております〜Textとして表示するためには、String型でなければならないためです〜
【課題3】ゲームオーバー機能を付ける
続いて制限時間をオーバーした時にGAME OVERの文字を表示させ、操作できないようにします〜まずはHierarchy>Create>UI>Textを選択し、名前をGameOverに変更し、Inspectorビューの情報を変更していきます〜
GUI(Text)作成
Inspector設定
こんな感じ
それではスクリプトでゲームオーバー機能を付けていこうと思います〜前回作成したTimeScriptに追記していく形で実現させていきます〜以下ソースです!
まずはpublic変数として、ballScript・exchangeButton・gameOverTextが追加されたのでオブジェクトを指定したいと思います〜
ドラッグ&ドロップ!
スクリプトの説明に入ります〜まずはStartメソッドにてGameOverオブジェクトを無効にし、GAME OVERの文字を消しています〜次に、Updateメソッドにて制限時間が0以下になった時、GameOverメソッドをコルーチンで呼び出しています〜
GameOverメソッドでは、まずはStartメソッドにてfalseにしておいたGameOverテキストをtrueにすることでGAME OVERの文字を表示させています〜
次にExchangeオブジェクトのinteractbleをfalseにすることでひよこExchangeボタンを使用不可にしています〜
次にballScriptのisPlayingという変数をfalseにしていますが、これについては後述します〜
次にWaitForSecondsで2秒待ち、2秒後に画面をクリックするとtitleシーンへ遷移します〜
それではballScriptにisPlayingという変数を追加し、ゲームオーバー状態ではひよこを消せないようにしましょう〜以下ソースです!
isPlayingというbool型の変数を追加しています〜初期値はtrueなので普通にひよこを消すことができる状態です〜そして、Updateメソッド内の全ての処理をif(isPlaying)で囲うことで、TimeScriptにてisPlayingをfalseにすることにより、ひよこを消せないようにしているというわけです〜
それでは最後にtitleシーンを作成しましょう〜
titleシーンについては以下 エッセンスを参照して作って下さい〜
【結果】
titleシーンからmainシーンへ遷移しゲーム開始、更に制限時間をオーバーするとゲームオーバー画面になり、クリックすることでタイトルへ戻るという流れを見てみましょう〜
タイトルシーンから
ゲーム画面へ行き
ゲームオーバーとなり
タイトル画面へ戻る
以上でつむつむ風のパズルゲームは終わりになります〜
ありがとうございました〜
【Unity開発6】ひよこをなぞって消したい!【つむつむ風3】
【Unity開発6】なぞったひよこだけ色を変えたい!【つむつむ風4】
【Unity開発6】ひよこExchangeボタン(更新機能)を作りたい!【つむつむ風6】
【Unity開発6】制限時間とゲームオーバーを実装したい!【つむつむ風7】