[20]タイムアタックをつくろう

ゲームを面白くする方法としてタイムアタックはとても有効です。それを実現する方法を学びましょう。

*「Main」シーンをダブルクリックしてシーンを切り替えておきましょう。

・まず、「Canvas」をダブルクリックして下記のようになるように調整しましょう。

スクリーンショット 2015-12-03 23.00.17

・「Canvas」を右クリック→「UI」を選択→「Text」を選択してクリック。

・名前は「TimeCount」に変更しておきましょう。

スクリーンショット 2015-12-03 23.04.14

・「TimeCount」を選択した状態で、「大きさ」「位置」「Text」「Font Size」を調整します。

・今回は「Canvas」の「左上」に配置するように調整しましょう。

スクリーンショット 2015-12-03 23.11.22

スクリーンショット 2015-12-03 23.21.34

ここまででオブジェクトの準備ができました。

次はタイムアタックの「スクリプト」を準備します。

・既に作ってある「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」をドラッグ&ドロップする。

スクリーンショット 2015-12-03 23.47.19

これで「Time Countのテキスト」と「スクリプト」が結びつきました。

スクリーンショット 2015-12-03 23.49.33

・「Time Count」には好きな数字を入れてみましょう。ここに記入した数字が「ゲームクリアーまでの制限時間」になります。

スクリーンショット 2015-12-03 23.57.00

ここまでできたら「再生ボタン」を押してみましょう。

TIMEの数字が動きだして、この数字が0になった時ゲームオーバーシーンに切り替われば成功です。

「制限時間」はゲームが面白くなるようにいろいろ変更してみましょう。