MRが楽しい

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

HoloLens2でホロモンアプリを作る その82(ホロモンが満腹時や疲労時に特定の行動をしなくなる)

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

今回はホロモンが満腹時や疲労時に特定の行動をしなくなるメモです。

体調パラメータの参照

ホロモンの空腹度や疲労度は以下で作成した内部パラメータを参照して取得します。
現在は Singleton パターンを利用して実装しているため、任意のスクリプトからパラメータが自由に参照できます。
bluebirdofoz.hatenablog.com

食事と遊び行動時の判定

視界の変化などにより、食事や遊び行動がキックされた際にこれらのパラメータを以下のように参照してチェックすることができます。

/// <summary>
/// 現在満腹状態かチェックする
/// </summary>
/// <returns></returns>
private bool CheckStatusIsFullStomach()
{
    bool isCheckStatus = false;
    // 空腹度が100以上なら満腹と判定する
    if (HoloMonConditionLifeSingleton.Instance.IReadOnlyReactivePropertyHoloMonLifeStatus.Value.HungryPercent >= 100)
    {
        isCheckStatus = true;
    }
    return isCheckStatus;
}

/// <summary>
/// 現在疲労状態かチェックする
/// </summary>
/// <returns></returns>
private bool CheckStatusIsTired()
{
    bool isCheckStatus = false;
    // 疲労度が0以下なら疲労と判定する
    if (HoloMonConditionLifeSingleton.Instance.IReadOnlyReactivePropertyHoloMonLifeStatus.Value.StaminaPercent <= 0)
    {
        isCheckStatus = true;
    }
    return isCheckStatus;
}

満腹時は食事行動の開始がキャンセルされ、また疲労時は遊び行動の開始がキャンセルされるように改修しました。

動作確認

シーンを再生し、動作を確認します。
f:id:bluebirdofoz:20211218234039j:plain

ホロモンに沢山お肉を与えていきます。
f:id:bluebirdofoz:20211218234051j:plain

体調パネルを開いて空腹度が100%になり、満腹状態になったことを確認します。
f:id:bluebirdofoz:20211218234103j:plain

満腹状態ではホロモンはお肉に視線こそ向けますが、受け取って食事することはしなくなりました。
f:id:bluebirdofoz:20211218234113j:plain