(Unity)ゲーム内に午前・午後・夕方の時間の流れを表現する。

投稿日: カテゴリー: Unity(V5.3.6)


1)Lightを準備する。

・「Hierarchy」で「Direction Light」「追加」作成する。(最初から1つは存在します。)

*ここでは「2つ」にしています。

・作成したら「名前」を変更しましょう。

名前は自由です。

*スクリプトの中にこの「名前」で指定する部分があるので、わかいやすい名前にしましょう。

*ここでは「DLight_A」「DLight_B」という名前をつけてあります。

Lightの色合い(Color)は自分の好みで設定してください。

2)スクリプトを修正する。

「GameController」スクリプトの中身を修正しましょう。(★★の部分を追加してください。)

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class GameController : MonoBehaviour {

	public float count;
	public Text timeLabel;

	// ★★(追加)Lightオブジェクトの情報を入れるための箱を作る。
	private GameObject lightA;
	private GameObject lightB;

	void Start () {
		timeLabel.text = "" + count;

		// ★★(追加)名前で指定して、箱の中に情報を入れる。
		lightA = GameObject.Find("DLight_A");
		lightB = GameObject.Find("DLight_B");
	}

	void Update () {

		// ★★(修正)ここが「-=」となっている場合には「+=」に修正しましょう。
		// -=はカウントダウン
		// +=はカウントアップ
		count += Time.deltaTime;

		timeLabel.text = "" + count.ToString("0");

		// ★★(追加)一定時間が経過すると、Lightオブジェクトを非アクティブにする。
		if(count > 10){
			lightA.SetActive(false);
		}

		if(count > 15){
			lightB.SetActive(false);
		}
	}
}

ここまでできたらチェック。

再生して、時間の経過ごとに、指定したLightが消えていけば成功です。