この記事では、UnityのVisual Scriptingを使って、DateTimeクラスを利用した日付や現在時刻の取得方法について解説します。
DateTimeとは
UnityでのDateTimeは、C#の標準ライブラリが提供する日時情報を操作するためのクラスです。時間を取り扱う際に便利です。
準備
- Unityのシーン上で空のゲームオブジェクトを配置します。
- そこにAdd Componentから「Script Machine」をアタッチし、新しく「Script Graph」を作成します。
- Manu→Edit→PojectSettingを開き、Visual Scriptingを選択します。TypeOptionを開き、左下にある+ボタンを押します。
- DateTimeとTimeSpanを追加しRegenerate Nodesを押します。

現在時刻を取得してConsoleに表示する
以下のノードを使用すると現在時刻を表示できます。
- Date Time: Get Now
- これを利用すると現在時刻を取得できます。
- その後、これをString型に変更し、Debug.Logを使ってConsoleに表示します。
ポイント: 本来ToStringは必要ないのですが、テキストに表示させることを見込み、付加しています。

現在時刻から年、時間、分、秒を取り出す方法
年:Get Year

時間:Get Hour

分:Get Minute

秒:Get Second

これらのノードを使用して個別の情報を取得できます。
フォーマットを指定して取得する方法
- **Date Time: To String (Format)**のノードを追加します。
- 「Format」のフィールドに出力したいフォーマットを記載します。例えば、以下のように入力します。
- yyyy/MM/dd H:mm:ss

Formatの欄に出力したいフォーマットを入力することができます。
今回は[yyyy/MM/dd H:mm:ss]と入力します。
yyyy |
年 |
MM |
月 |
dd |
日にち |
H |
時間 |
mm |
分 |
ss |
秒 |
記載レベルに従って出力されます。 例えば、「yyyy」を「yy」にした場合、2025年が25と表示されます。

実行した結果、現在時刻をConsoleに表示できました。

現在時刻から時間をずらす
Date TimeにTime Spanを追加することで時間をずらすことができます。
所要ノード
- **Time Span Create: Time Span (Day, Hour, Minutes, Seconds)**を追加します。
- 例として、現在時刻から1時間ずらす設定にします。

今回は現在時刻から1時間ずらします。

実行すると、1時間ずらした時刻を取得できます。

1時間ずらすことができました。
まとめ
Visual Scriptingを活用することで日時情報を簡単に操作できます。この記事で紹介した方法を使えば、時刻の表示やフォーマットのカスタマイズ、さらには時間の加算や減算も可能です。これを応用して、ゲーム内のタイマーやイベントスケジュールの実装に役立ててください。