(Unity)カウントダウンタイマーの作成2(ユーザー入力/スタートボタン)

(スクリプト)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;

public class InputTimer : MonoBehaviour
{
    public GameObject inputNum;
    private string stringTime;

    public TextMeshProUGUI timeLabel;

    private int intTime; // 入力値は「秒」
    private int h; // 「時」
    private int m; // 「分」
    private int s; // 「秒」

    private int num;

    public void OnStartButtonClicked()
    {
        // ユーザーが入力したデータの処理
        // 入力データは「string」型
        stringTime = inputNum.GetComponent<text>().text;

        // 入力データを計算に使えるように「int」型に変換する。
        intTime = int.Parse(stringTime);

        num = intTime;

        // ボタンを押すとコルーチン開始
        StartCoroutine(TimeCount());
    }

    private IEnumerator TimeCount()
    {
        for (int i = 0; i < num; i++)
        {
            intTime -= 1;

            // 3600秒(1時間)で割って「何時間」を算出
            h = intTime / 3600;

            // 残った秒数を60秒(1分)で割って「何分」を算出
            m = (intTime - 3600 * h) / 60;

            // 60秒(1分)で割った「余り」を「何秒」として算出
            s = (intTime - 3600 * h) % 60;

            timeLabel.text = string.Format("{0:00}:{1:00}:{2:00}", h, m, s);

            // 1秒ごとに繰り返す。
            yield return new WaitForSeconds(1);
        }
    }
}

(設定ポイント)

  • 今回は、入力を「整数5桁」に制限


(実行結果)

  • 好きな数字を入力

  • スタートボタンを押すと、カウントダウン開始