(スクリプト)
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桁」に制限
(実行結果)
- 好きな数字を入力
- スタートボタンを押すと、カウントダウン開始