本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
ホロモンの現在ステータスをUIで確認する
以下の記事で作成したホロモンの内部ステータスをUIから確認できるようにします。
bluebirdofoz.hatenablog.com
内部ステータスの変化は UI 側で UniRx の ReadOnlyReactiveProperty を購読して検出します。
ReadOnlyReactiveProperty の詳細は以下の記事を参照ください。
bluebirdofoz.hatenablog.com
実装スクリプト
HoloMonConditionLifeSingleton クラスから対象パラメータの ReadOnlyReactiveProperty を購読して状態が変化するとテキストを変更するスクリプトを作成しました。
・ShowStatusHungry.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using UniRx; using HoloMonApp.ConditionSpace; namespace HoloMonApp.MenuViewSpace { public class ShowStatusHungry : MonoBehaviour { [SerializeField, Tooltip("テキスト出力先")] private TextMeshPro p_TextField; /// <summary> /// 開始処理 /// </summary> void Start() { HoloMonConditionLifeSingleton.Instance.IReadOnlyReactivePropertyHoloMonLifeStatus .ObserveOnMainThread() .Subscribe(status => { int percent = status.HungryPercent; p_TextField.text = percent.ToString() + " %"; }) .AddTo(this); } } }
動作確認
シーンを再生して動作を確認します。
ハンドメニューからパラメータの項目を開くと、ホロモンの現在のステータスが表示されます。
ステータスに変化があると ReadOnlyReactiveProperty のイベントが発生し、即座に反映されます。