Unity5(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity6】uGUI(Text)で制限時間とゲームオーバー画面を実装!Time.deltaTime【ツムツム風7】

いつもひよこのたまごをご利用下さいましてありがとうございます!
おかげ様でチュートリアル数も10ゲーム目となりました!
チュートリアル一覧は
こちら からどうぞ!


スポンサーリンク

Unity5.0.0f4 Personal(2015年5月)

f:id:hiyotama:20150518132929p:plain

 

前回の続きです〜

今回は制限時間を設定し、制限時間を経過するとゲームオーバーとなる機能を実装したいと思います〜

 

【目標】制限時間とゲームオーバー機能を実装し、ゲームを完成させる!

 

【課題1】制限時間のGUIを表示させる

まずは制限時間を表示するGUI(Text)をゲーム画面へ取り付けましょう〜HierarchyからCreate>UI>Textを選択し、名前はTimeにします〜

 

f:id:hiyotama:20150519155812p:plain

GUI(Text)作成

 

f:id:hiyotama:20150519133354p:plain

GUI(Text)設定

 

f:id:hiyotama:20150519133449p:plain

画面右上に制限時間の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ビューの情報を変更していきます〜

 

f:id:hiyotama:20150519160622p:plain

GUI(Text)作成

 

f:id:hiyotama:20150519160644p:plain

Inspector設定

 

f:id:hiyotama:20150519160710p:plain

こんな感じ

 

それではスクリプトでゲームオーバー機能を付けていこうと思います〜前回作成したTimeScriptに追記していく形で実現させていきます〜以下ソースです!

 

 

まずはpublic変数として、ballScript・exchangeButton・gameOverTextが追加されたのでオブジェクトを指定したいと思います〜

 

f:id:hiyotama:20150519162550p:plain

ドラッグ&ドロップ!

 

スクリプトの説明に入ります〜まずは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シーンへ遷移しゲーム開始、更に制限時間をオーバーするとゲームオーバー画面になり、クリックすることでタイトルへ戻るという流れを見てみましょう〜

 

f:id:hiyotama:20150519164041p:plain

タイトルシーンから

 

f:id:hiyotama:20150519164216p:plain

ゲーム画面へ行き

 

f:id:hiyotama:20150519164232p:plain

ゲームオーバーとなり

 

f:id:hiyotama:20150519164041p:plain

タイトル画面へ戻る

 

以上でつむつむ風のパズルゲームは終わりになります〜

ありがとうございました〜

 

【Unity開発6】下準備【つむつむ風1】

【Unity開発6】ひよこを発生させる【つむつむ風2】

【Unity開発6】ひよこをなぞって消したい!【つむつむ風3】

【Unity開発6】なぞったひよこだけ色を変えたい!【つむつむ風4】

【Unity開発6】スコア機能を付けたい!【つむつむ風5】

【Unity開発6】ひよこExchangeボタン(更新機能)を作りたい!【つむつむ風6】

【Unity開発6】制限時間とゲームオーバーを実装したい!【つむつむ風7】