Unityでゲームアプリを作る際、使用頻度の高い「タイマー」機能の実装方法に関するメモ。
タイマーの仕様としては以下とします。
・シーン表示直後にタイマー開始
・何分・何秒を表示する
Unityでタイマーを実装する方法
画面構成は以下
・「Canvas」の子にtimerLabel(タイマー表示用ラベル)を追加
・GamePlayManagerというGameObjectを「Hierarchy」に追加
・GamePlayManagerに以下のスクリプトをコンポーネントとして追加
・GamePlayManagerオブジェクトにtimerLabelをアタッチする
using UnityEngine; using UnityEngine.UI; public class GamePlayManager : MonoBehaviour { public GameObject timerLabel; //タイマー表示用ラベル [SerializeField] private int minute; [SerializeField] private float seconds; // 前のUpdateの時の秒数 private float oldSeconds; void Start() { minute = 0; seconds = 0f; oldSeconds = 0f; timerLabel.GetComponent<Text>().text = minute.ToString("00") + ":" + ((int)seconds).ToString("00"); } void Update() { seconds += Time.deltaTime; if (seconds >= 60f) { minute++; seconds = seconds - 60; } // 値が変わった時だけテキストUIを更新 if ((int)seconds != (int)oldSeconds) { timerLabel.GetComponent<Text>().text = minute.ToString("00") + ":" + ((int)seconds).ToString("00"); } oldSeconds = seconds; } }