【Unity4】制限時間実装!uGUIText, Time.deltaTime, Time.timeScale【レースゲーム7】
Unity5.1.1p3 Personal(2015年7月)
前回の続きです〜
今回は前回作成したlevelTimeScriptに制限時間を追加します〜
countBorderを超えるたびに時間を増やしていきたいと思います〜
【目標】制限時間を超えた時ゲームオーバーになるようにする!
【課題1】制限時間を設ける
まずはGUIを作成しましょう〜といっても、前回levelのGUIを作ったのと同じやり方ですので割愛して、設定だけ載せておきます〜
Timeテキスト
こんな感じで表示される
それではlevelTimeScriptに加筆していきます〜
public変数にtimeGUIがありますので、Timeテキストを設定します〜
ドラッグ&ドロップ!
やっていることはStartメソッドで初期値を表示し、Updateメソッドで1秒ずつ減らしていき、MainCameraのposition.zがcountBorderを超えた時AddTimeメソッドを実行し、レベルに応じて時間を加算しております〜
Time.deltaTimeという表現がよく出てきますが、「これは1秒につき」という意味です〜例えば、Time.deltaTimeがついていないとしたら、Updateが呼ばれるごとに実行してしまうため、例えば1秒に60回Updateが呼ばれる環境だったら、1秒で制限時間が60も減ってしまい即ゲームオーバーです!
1秒ずつ減っていきます
【課題2】制限時間が無くなった時、ゲームオーバーにする
制限時間が0になった時、ゲームオーバーの文字を表示させます〜
それではまずはGameOver用のGUIを作成しましょう!GameOverテキストの設定を貼っておきます〜
画面の中心、「lilliput steps」フォント、文字色赤+アウトライン
こんな感じ
ゲーム開始時には消しておいて、ゲームオーバーになった時表示するgameOverScriptを作成し、GameOverテキストに貼っておきましょう〜
Startメソッドでこのオブジェクト(GameOverテキスト)を無効にし、Loseメソッドが呼ばれた時に有効にしております〜
それではLoseメソッドを読んであげましょう〜先ほどのlevelTimeScriptに戻ります〜
10行目にgameOverScript変数をpublicで追加し、59行目でLoseメソッドを呼び出しております〜忘れないうちに、public変数にGameOverテキストを指定してあげましょう〜
ドラッグ&ドロップ!
これでGAME OVERの文字が表示されるようになりました〜
更に60行目でTime.timeScaleを0にしております〜これを実行することでゲームの中の時間の流れが止まり、例えば制限時間が進まなくなったり、プレイヤーが止まったりします〜
そして61~63行目で、画面をクリックした時にtitleシーンへ飛ぶようになっております〜
中途半端ですが、今回はここまでです〜
ありがとうございました〜
【Unity開発4】車を走らせたい!【ドライビングゲーム2】
【Unity開発4】車をジャンプさせたい!【ドライビングゲーム3】
【Unity開発4】道路を無限に伸ばし続ける【ドライビングゲーム4】
【Unity開発4】敵キャラをランダムで生成する【ドライビングゲーム5】
【Unity開発4】レベルによるスピード制限機能を追加する!【ドライビングゲーム6】
【Unity開発4】制限時間を設ける【ドライビングゲーム7】
【Unity開発4】タイトル・ゲームオーバーを仕上げる!【ドライビングゲーム8】