MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens2でホロモンアプリを作る その22(ホロモンが時間経過でお腹を空かせる)

本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
f:id:bluebirdofoz:20210328231040j:plain

今回はホロモンが時間経過でお腹を空かせるメモです。

活動時間の時間経過を計算する

単純に定期的な時間経過による処理の実行を行う場合は UniRx の Interval または Timer のオペレータを利用すると便利です。
・UniRxを使って一定間隔で処理を行う
https://bluebirdofoz.hatenablog.com/entry/2021/02/26/024511

ただし、今回に関しては以下の条件を満たしたいため、この手法は利用しませんでした。
・アプリを終了した後、再起動しても経過時間を考慮してお腹を空かせる
・睡眠中は空腹度が変化せず、起きている時間のみ、空腹が進行する

2つの時間から時間経過を求める場合、DateTime 型同士を減算して TimeSpan 型の戻り値を取得することができます。

// 始点時刻と終点時刻
DateTime p_StartTime = DateTime.Now;
DateTime p_EndTime = DateTime.Now.AddMinutes(30.0f);

// 経過時刻を計算する
TimeSpan SubtractionTime = a_EndTime - a_StartTime;

最終的に以下のようなスクリプトを作成しました。
・HoloMonConditionLifeSingleton.cs

f:id:bluebirdofoz:20210328231017j:plain

シーンを再生して動作を確認します。
時間経過に合わせて設定値通りにステータスが変化しました。
f:id:bluebirdofoz:20210328231006j:plain