ゲームを面白くする方法としてタイムアタックはとても有効です。それを実現する方法を学びましょう。
*「Main」シーンをダブルクリックしてシーンを切り替えておきましょう。
・まず、「Canvas」をダブルクリックして下記のようになるように調整しましょう。
・「Canvas」を右クリック→「UI」を選択→「Text」を選択してクリック。
・名前は「TimeCount」に変更しておきましょう。
・「TimeCount」を選択した状態で、「大きさ」「位置」「Text」「Font Size」を調整します。
・今回は「Canvas」の「左上」に配置するように調整しましょう。
ここまででオブジェクトの準備ができました。
次はタイムアタックの「スクリプト」を準備します。
・既に作ってある「GameController」スクリプトをダブルクリックしてください。この中に追加のコードを記載していきます。
using UnityEngine; using System.Collections; // ①★これを追加する using UnityEngine.UI; using UnityEngine.SceneManagement; public class GameController : MonoBehaviour { public Ball coinCount; public CoinPanel coinPanel; // ②★変数を定義する public float timeCount; public Text timeLabel; // Update is called once per frame void Update () { coinPanel.UpdateCoin(coinCount.Coin()); // ③★タイムラベルを更新する。 timeCount -= Time.deltaTime; timeLabel.text = "TIME:" + timeCount.ToString("0"); // ④★タイムが0になったらゲームオーバーにする if(timeCount < 0.0f){ SceneManager.LoadScene("GameOver"); } } }
(ポイント!)
・「timeCount」は後で「Inspector」上で数字を自由に設定できるように「public」で定義しておきます。
・「ToString( )」は、「数字」を「文字」に変換するメソッドです。覚えておきましょう。
・「if文」を使っています。もしも、timeCountが0よりも小さくなったら「GameOverシーン」に切り替えるように設定します。
・「LoadScene( )」は( )に記載したシーンに切り替えるメソッドです。
・コードが書けたらセーブしておきましょう。
・「GameController」オブジェクトを選択した状態で、「Time Label」に「TimeCount」をドラッグ&ドロップする。
これで「Time Countのテキスト」と「スクリプト」が結びつきました。
・「Time Count」には好きな数字を入れてみましょう。ここに記入した数字が「ゲームクリアーまでの制限時間」になります。
ここまでできたら「再生ボタン」を押してみましょう。
TIMEの数字が動きだして、この数字が0になった時ゲームオーバーシーンに切り替われば成功です。
「制限時間」はゲームが面白くなるようにいろいろ変更してみましょう。