Unity5.0.0f4 Personal(2015年5月)
前回はタイトル画面からゲーム画面へ行くだけで終わってしまったので、今度はゲームオーバーを作りたいと思います〜
【目標】タイトル→ゲーム→ゲームオーバーという流れを作る!
【課題1】コインを落とすとスコアが−1になるようにする
まずはSceneをtitleからmainに戻しましょう〜
mainシーンをダブルクリック
今回はSpawnerからコインを落とすとスコアが減っていくようにします〜ので、SpawnerScriptに加筆していきます〜以下ソースです!
uScoreがpublic変数なので、例のごとくScoreオブジェクトを指定してあげます〜
ドラッグ&ドロップ!
ボタンをクリックしコインを生成したタイミングで、14行目にあるSendMessageを行い、ScoreオブジェクトのCountDownメソッドを実行しております〜ので、次はScoreScriptに加筆していきます〜
スコアをマイナスしているだけで、CountUpメソッドと同じやり方です〜
これでコインを落とすとスコアが−1になるようになりました〜
スコアが30から減っていきます
【課題2】スコアが0になった時、ゲームオーバーの文字を表示させる
まずは「GAME OVER」の文字を作りましょう〜Create>UI>Textを選択し、名前を「GameOver」に変更して下さい!
RectTransformにてAnchorを中心に設定し、文字サイズをちょうどいい感じにして下さい!
GameOverオブジェクトの設定例
こんな感じ
それではGameOverオブジェクトにGameOverScriptを設定したいと思います〜以下ソースです〜
StartメソッドでTextを無効にし、Loseメソッドが呼ばれた時にTextを有効にしております〜
ではLoseメソッドをどこから呼び出せばいいのでしょうか?ScoreをカウントしているのはScoreオブジェクトなので、ScoreオブジェクトについているCountScriptのUpdateメソッドに設定すれば大丈夫です〜以下ソースです〜
public変数のGameOverが定義されているので、例のごとく設定してあげましょう〜
ドラッグ&ドロップ!
Updateメソッドにてスコアが0以下になった時、SendMessageによってGameOverScriptのLoseメソッドを呼び出し、ゲームオーバーの文字が表示されるようになりました〜
【課題3】GameOver状態でクリックすると、タイトル画面へ戻る
最後にゲームオーバー画面からクリックした時、タイトル画面へ戻る機能を追加します〜
GameOverScriptを加筆修正していきましょう〜
gameOver状態になったことを示すgameOverflgというBool型の変数を新しく作成します〜
ゲームオーバーになり、Loseメソッドが呼び出された時、「Finish」というタグのついた画面上の全てのオブジェクトを、clonesというGameObject配列に格納していきます〜
GameObject等変数の型の後ろに[ ]が付いていると配列を表し、ひとつの変数の中に複数のデータを登録しておくことができます〜そして、特定のタグの付いた画面上の全てのオブジェクトを取得する関数が、FindGameObjectsWithTagです〜
注意して下さいね〜FindGameObjectWithTagはひとつのオブジェクトしか取得できませんが、FindGameObject「s」WithTagだと、対象の全てのオブジェクトを配列に取得できるのです〜
その配列をひとつずつ取り出していくのがforeach構文です〜clonesという先ほど作成した配列の中からひとつずつGameObjectを取り出しobj変数に格納し、ひとつずつDestroyしています〜
Destroyする対象はコインプッシャー上に残っているコインなので、CoinPrefabのTagをFinishに変更しましょう〜
Finishに変更
これでゲームオーバーになった時、全てのコインを消し去ることができるようになりました〜
そしてgameOverFlgがtrueとなったため、Updateメソッドの処理を実行することができるようになりました〜これにより、ゲームオーバー状態で画面をクリックした時、タイトルへ戻ることができるようになりました!
ゲームオーバー 全てのコインを消去!
クリックしてタイトルへ!
以上でコインプッシャーのひと通りの機能が実装されました〜
お付き合いありがとうございました〜
【Unity開発3】プッシャーを動かしてコインを落としたい!【コインプッシャー2/6】
【Unity開発3】画面をクリックしてコインを出現させたい!【コインプッシャー:3/6】
【Unity開発3】前方にコインが落ちた時スコアアップしたい!【コインプッシャー4/6】