以下の内容はフォートナイトv31.20に基づいてます。
目次
ゲーム内の経過時間を取得する
GetSimulationElapsedTime()を使用する
GetSimulationElapsedTime()の返り値でゲームが開始されてからの経過時間(秒)を取得できる。
1秒おきに取得した経過時間を表示させてみる。
OnBegin<override>()<suspends>:void=
loop:
SimulationElapsedTime := GetSimulationElapsedTime()
Print("SimulationElapsedTime : {SimulationElapsedTime}", ?Duration := 10.0)
Sleep(1.0)
以下ゲーム中のログ。
今度はSleepを0.0に設定してループごとの経過時間を取得して加算する。
OnBegin<override>()<suspends>:void=
var PreviousTime:float = 0.0
var TotalElapsedTime:float = 0.0
loop:
CurrentElapsedTime := GetSimulationElapsedTime()
DeltaTime := CurrentElapsedTime - PreviousTime
set PreviousTime = CurrentElapsedTime
set TotalElapsedTime += DeltaTime
Print("DeltaTime : {DeltaTime}", ?Duration := 10.0)
Print("TotalElapsedTime : {TotalElapsedTime}", ?Duration := 10.0)
Sleep(0.0)
DeltaTimeは毎回約0.033秒ということは30fpsで回っているということか。
最後のメッセージはおそらくメッセージの表示頻度が高いことに対するWarning。
現在日時を取得する
GetSecondsSinceEpoch()を使用する
V31.00のアップデートで追加されたメソッド、GetSecondsSinceEpoch()の返り値で1970年1月1日 00:00:00 UTC(協定世界時)からの経過秒数が取得できるのでこれを使用する。
1秒おきに取得した値を表示させてみる。
OnBegin<override>()<suspends>:void=
loop:
SecondsSinceEpoch := GetSecondsSinceEpoch()
Print("SecondsSinceEpoch : {SecondsSinceEpoch}", ?Duration := 10.0)
Sleep(1.0)
以下ゲーム中のログ。
取得した数値「1726757385.192000」を変換すると、
日付:2024年9月19日、時刻:13:49:45(UTC)・22:49:45(JST)
となり、現在日時が取得できることが確認できた。
コメント