Visual Scripting:DateTimeで日付や現在時刻を表示する方法

この記事では、UnityのVisual Scriptingを使って、DateTimeクラスを利用した日付や現在時刻の取得方法について解説します。

DateTimeとは

UnityでのDateTimeは、C#の標準ライブラリが提供する日時情報を操作するためのクラスです。時間を取り扱う際に便利です。

準備

  1. Unityのシーン上で空のゲームオブジェクトを配置します。
  2. そこにAdd Componentから「Script Machine」をアタッチし、新しく「Script Graph」を作成します。
  3. Manu→Edit→PojectSettingを開き、Visual Scriptingを選択します。TypeOptionを開き、左下にある+ボタンを押します。
  4. DateTimeとTimeSpanを追加しRegenerate Nodesを押します。
Image2

現在時刻を取得してConsoleに表示する

以下のノードを使用すると現在時刻を表示できます。

  • Date Time: Get Now
  • これを利用すると現在時刻を取得できます。
  • その後、これをString型に変更し、Debug.Logを使ってConsoleに表示します。

ポイント: 本来ToStringは必要ないのですが、テキストに表示させることを見込み、付加しています。

Image3

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

年:Get Year

Image10

時間:Get Hour

Image11

分:Get Minute

Image6

秒:Get Second

Image9

これらのノードを使用して個別の情報を取得できます。

フォーマットを指定して取得する方法

  1. **Date Time: To String (Format)**のノードを追加します。
  2. 「Format」のフィールドに出力したいフォーマットを記載します。例えば、以下のように入力します。
    • yyyy/MM/dd H:mm:ss
Image1

Formatの欄に出力したいフォーマットを入力することができます。

今回は[yyyy/MM/dd H:mm:ss]と入力します。

yyyy

MM

dd

日にち

H

時間

mm

ss

記載レベルに従って出力されます。 例えば、「yyyy」を「yy」にした場合、2025年が25と表示されます。

Image8

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

Image5

現在時刻から時間をずらす

Date TimeTime Spanを追加することで時間をずらすことができます。

所要ノード

  1. **Time Span Create: Time Span (Day, Hour, Minutes, Seconds)**を追加します。
  2. 例として、現在時刻から1時間ずらす設定にします。
Image4

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

Image7

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

Image12

1時間ずらすことができました。

まとめ

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