Unityで3分の制限時間を追加し、カウントダウンをする方法

2022/03/13に公開

使用OS

Mac

本記事で使用しているUnityバージョン

Version 2020.3.18f1

やりたいこと

  • Unityの画面上に残り時間をカウントダウンする文字列を表示する
  • 制限時間が3分の場合、「03:00」で始まり、「02:59」→「00:00」となる

方法

  • Textを追加し、ちょうどいい位置・フォントサイズに調整
  • 下記のスクリプトを作成し、Textにアタッチ
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TimeCounter : MonoBehaviour
{
    public int countdownMinutes = 3;
    private float countdownSeconds;
    private Text timeText;

    private void Start()
    {
        timeText = GetComponent<Text>();
        countdownSeconds = countdownMinutes * 60;
    }

    void Update()
    {
        countdownSeconds -= Time.deltaTime;
        var span = new TimeSpan(0, 0, (int)countdownSeconds);
        timeText.text = span.ToString(@"mm\:ss");

        if (countdownSeconds <= 0)
        {
            // 0秒になったときの処理
        }
    }
}
  • ゲームを開始すると、以下のようになる

補足

  • countdownMinutesに「制限時間を何分にしたいか」を設定します。ここではデフォルトを3分としています。
  • countdownSecondsは実際の秒数です。指定しているのは分なので、60をかけています。制限時間が1分以内であれば、直接秒数を指定してください。
  • 「"mm:ss"」のところは各自ゲームに合わせてカスタムしてください。

参考

こちらを参考にさせていただきました。ありがとうございました。

https://qiita.com/Nossa/items/70487b765ec9332e0db0

Discussion