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

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

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

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】