経過時間のタイマー表示と現在時刻の表示|Unityゲーム作成

Unityで「経過した時間の表示」と「現在時刻」を表示していきます。

はじめに

Unityのバージョンは「2021.3.14f1」で作成しています。

ゲーム開始から「経過時間の表示」と「現在時刻の表示」をしてみます。

実装開始

まずは簡単なUIを作成します。「UI」→「Legacy」→「Text」を追加します。

表示位置や文字サイズなどは好きな感じでOKです。上の方に表示することが多いと思います。

スクリプトの作成

下記スクリプトを作成します。

using UnityEngine;
using UnityEngine.UI;

public class Timer : MonoBehaviour
{
    [SerializeField] private Text timerText;

    private int minutes, seconds;

    private void Update()
    {
        timerText.text = TimeFormat(Time.time);
    }

    private string TimeFormat(float time)
    {
        minutes = (int)time / 60;
        seconds = (int)time % 60;

        return string.Format("{0:00}:{1:00}", minutes, seconds);
    }
}

「Time.time」にはゲーム開始からの秒数が入っているので、分数と秒数に分けます(例えば、200と返ってきた場合は、3分20秒となるようにしています)。分けた後は0埋めで整えて画面上に表示しています。

カメラにスクリプトを追加して、パラメータをセットします。

実行すると下記のような感じで「ゲーム開始からの経過時間」が表示されます。

現在時刻の表示

C#では、現在時刻を「DateTime.Now」で取得することができます。ただし、そのままだと年月日も入っているので時間だけにします。

using System;
using UnityEngine;
using UnityEngine.UI;

public class Timer : MonoBehaviour
{
    [SerializeField] private Text timerText;

    private void Update()
    {
        timerText.text = DateTime.Now.ToLongTimeString();
    }
}

下記でも同じように「時分秒」だけになります。

timerText.text= DateTime.Now.ToString("hh:mm:ss");

UnityというよりはC#ですね。

実行すると下記のような感じに現在時刻が表示されます。

タイトルとURLをコピーしました