Unity C#で今の日付・日時を表示する方法です。
DateTime.Nowの使い方
DateTime構造体
//Unity C#
public class GetTime : MonoBehaviour
//DateTimeを扱うのに必要
using System;
{
//日付を代入する変数(DateTime構造体)
DateTime dt;
}
日時を取得するには、名前空間にSystemを追加した上で、日時を代入するDateTime構造体を作る必要があります。
構造体は複数の値が組み合わさってひとつのデータになっているもので、時間の時、分、秒はそれぞれだけで見れば整数ですが、みっつ合わさって「時間」を構成します。あと年月日も入ります。
ざっくり言えば変数です。
構造体は複数の値が組み合わさってひとつのデータになっているもので、時間の時、分、秒はそれぞれだけで見れば整数ですが、みっつ合わさって「時間」を構成します。あと年月日も入ります。
ざっくり言えば変数です。
現在日時を取得
//Unity C#
using System;
public class GetTime : MonoBehaviour
{
DateTime dt;
void Start()
{
//現在日時を代入
dt = DateTime.Now;
//コンソールに表示
Debug.Log(dt);
}
}
作ったDateTime構造体に
DateTime.Now
を代入すれば、
ゲーム実行時このように、コンソールに現在時刻が表示されます。
現在日時をテキストに表示

画面にテキストを用意しておきます。作り方やキャンバスをカメラに合わせる方法などは、テキストの記事をご参照ください。
//Unity C#
using System;
using UnityEngine.UI;
public class GetTime : MonoBehaviour
{
DateTime dt;
public Text text;
void Start()
{
//現在日時を代入
dt = DateTime.Now;
//コンソールに表示
text.text = dt.ToString();
}
}
テキストをインスペクターでセットし、DateTime構造体をToStringで文字列に変換して、テキストに流し込みます。

実行結果です。現在の年月日がこのように表示されます。
年、月、日、時刻、分、秒、ミリ秒を別々に表示
//Unity C#
text.text = dt.Year.ToString();
DateTime構造体に対し、Yearを後ろに付けると、

こんな感じで、構造体の中から「年」だけを取り出すことができます。
//Unity C#
dt = DateTime.Now;
text.text = dt.Year.ToString() + "年";
text.text = text.text + dt.Month.ToString() + "月";
text.text = text.text + dt.Day.ToString() + "日";
text.text = text.text + dt.Hour.ToString() + "時";
text.text = text.text + dt.Minute.ToString() + "分";
text.text = text.text + dt.Second.ToString() + "秒";
text.text = text.text + dt.Millisecond.ToString() + "ミリ秒";
同様にMonthで月、Dayで日……となります。
なのでたとえばこういうことをすると、
なのでたとえばこういうことをすると、

個別に月や分だけを取り出したり、後ろに単位をつけたりすることが可能です。

Updateメソッドで実行すると、そのまんま時計になります。

やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。
コメント