開発日誌: Unity::アドベンチャー3Dゲーム開発vol.5::タイマー実装

コメント
タイマー実装します。よく実装するものなので、押さえときたいですね^^
手順1:CanvasのオブジェクトにTimerUITextを追加
UIについかするのでCanvasですね。 GameObject>UI>Textです。
手順2:C#スクリプトを記載・機能追加
スクリプトを記載します。Canvasに引っ付けてあるC#スクリプトに記載しました。
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class scorecontroll : MonoBehaviour {
public Text Timer; //Timerを宣言
public static float Timer_sec = 120.0f; //初期設定は120秒。
//タイマーはfloatで宣言しましょう。他のスクリプトで参照できるようにstaticも入れておく(タイマー30秒前でイベント発生など)
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Timer_sec >= 0) //Timer残り時間が0秒以上なら
{
Timer.text = Timer_sec.ToString("N2"); //Timerのテキスト部分に残り時間を文字列に直して小数第2位まで(N2)表示
Timer_sec -= Time.deltaTime; //Timerの残り時間に時間経過を加算
}
if (Timer_sec < 0) //Timer残り時間が0秒未満なら
{
Timer_sec = 0; //Timer残り時間を0きっちりにする(UPDATEはフレームごとに起きるので0を下回るときがある)
Timer.text = Timer_sec.ToString("N0"); //小数点以下切り捨てで残り時間0秒を表示
SceneManager.LoadScene("main"); //"main"シーンへ移動(ほかのエンディングシーンとか移動もここを書き換える)
}
}
手順3:TimerUITextとC#スクリプト紐づけ
Canvasのオブジェクトに最初の手順1で追加した、TimerUITextを追加します。

手順4:完成
これでうまく動きました。
