【Unity】【C#】端末から時刻を取得してみよう

Unity,C#で端末から時刻を取得する方法

Unityでは、端末(PCやスマホなど)から現在の時刻を取得することができます。

まるとこ

ゲーム内で時計を表示したり、放置ゲーム、育成ゲームなどに使えるかと思います。

今回は時刻取得の方法を簡単にご紹介します。

目次

現在時刻を取得する方法(DateTime.Now)

C#のDateTime構造体というものを使用します。名前は難しそうですが、簡単に使うことができます。

C#の機能を使うので、using System; を忘れずに書きます。

実行した時の時刻を文字列で取得するサンプルコードは以下になります。

using UnityEngine;
using System;

public class DateTimeSample : MonoBehaviour
{
    DateTime dt = DateTime.Now;

    void Start()
    {
        Debug.Log("現在の時刻は" + dt.ToString());
    }
}

実行結果は次のようになります(2024年11月4日19時48分16秒に実行しました)。

このように、月/日/年 時:分:秒 PM or AM のように出力されます。

各要素を取り出す

秒だけ、時間だけなど、個別で取り出すこともできます。要素はそれぞれint型の変数に代入できます。

using UnityEngine;

public class DateTimeSample : MonoBehaviour
{
    int year = System.DateTime.Now.Year;               //年
    int month = System.DateTime.Now.Month;             //月
    int day = System.DateTime.Now.Day;                 //日
    int hour = System.DateTime.Now.Hour;               //時
    int minute = System.DateTime.Now.Minute;           //分
    int second = System.DateTime.Now.Second;           //秒
    int millisecond = System.DateTime.Now.Millisecond; //ミリ秒

    void Start()
    {
        Debug.Log("現在は"
            + year + "年"
            + month + "月"
            + day + "日"
            + hour + "時"
            + minute + "分"
            + second + "秒"
            + millisecond + "ミリ秒");
    }
}

実行結果は次のようになります。時間は個別で取り出すと、20時のように24時間表記で表示されます。

フォーマットを指定して文字列に変換する

ToStringメソッドの引数にフォーマットを指定することで、DateTimeの日時をフォーマットを指定して文字列に変換できます。

年、月、日は yyyy/MM/dd

時(24時間表記)、分、秒は HH:mm:ss

時(12時間表記)、分、秒は hh:mm:ss

のように指定します。

Unityで確認するとこのようになります。

using UnityEngine;
using System;

public class DateTimeSample : MonoBehaviour
{
    DateTime dt = DateTime.Now;

    String formattedDate_24; //24時間表記の日時
    String formattedDate_12; //12時間表記の日時

    void Start()
    {
        formattedDate_24 = dt.ToString("yyyy/MM/dd HH/mm/ss");
        formattedDate_12 = dt.ToString("yyyy/MM/dd hh/mm/ss");

        Debug.Log("24時間表記の日時" + formattedDate_24);
        Debug.Log("12時間表記の日時" + formattedDate_12);
    }
}

実行結果は次のようになります。

終わりに

Unityで時刻を取得する方法を簡単にご紹介しました。

もっと詳しく知りたい方は、UnityというよりC#の分野なので「C# DateTime」のキーワードで検索すると良いかと思います。

それではまた!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次