テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsやアプリ開発に役立つ情報を発信します。

【Unity】簡易的なタイマーを実装する方法

Unityでゲームアプリを作る際、使用頻度の高い「タイマー」機能の実装方法に関するメモ。

【Unity】簡易的なタイマーを実装する方法

タイマーの仕様としては以下とします。
・シーン表示直後にタイマー開始
・何分・何秒を表示する


Unityでタイマーを実装する方法

画面構成は以下

【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;
    }
}