開発日誌: 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:完成
これでうまく動きました。