本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
今回はホロモンとアイテムが空間の狭間に落下した際に自動復帰するメモです。
空間の狭間に落下する
ホロモンアプリは HoloLens の空間認識を元に現実空間の地面を判定します。
しかし、まれに認識漏れが発生して地面に穴が空いていることがあります。
今回はこの空間の狭間にホロモンが落ちた場合の自動復帰の仕組みを実装しました。
指定の高度以下にオブジェクトが達した場合、復帰のための処理を実行します。
・FallDownResetter.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; namespace HoloMonApp.UtilitiesSpace { public class FallDownResetter : MonoBehaviour { [SerializeField, Tooltip("落下時リセット呼び出し処理")] private UnityEvent ResetEvents; [SerializeField, Tooltip("リセット判定高度(Y)")] private float ResetYHeight = -30.0f; /// <summary> /// 定期処理 /// </summary> void Update() { if (ResetYHeight > this.transform.position.y) { // 敷居値以下の高度になった場合リセット処理呼び出し ResetEvents.Invoke(); } } } }
ホロモンのゲームオブジェクトにスクリプトを設定し、位置リセットの呼び出しイベントを登録しました。
動作確認
シーンを再生して動作を確認します。
少々心苦しいですがホロモンを空間の狭間に落としてみます。
地面がないため、ホロモンが遥か下まで落ちていきます。
しばらくすると閾値の判定が働き、リセット処理が実行されて目の前にホロモンが戻ってきました。