MRが楽しい

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

HoloLens2でホロモンアプリを作る その119(ヘルプウィンドとメニューのアイテムを判別する)

本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
今回はアイテムの除去を行う際にヘルプウィンドとメニューのアイテムを判別する機能を追加しました。

ヘルプウィンドとメニューのアイテムを判別する

前回記事でメニューのボタンを押下するとシーンに配置されたアイテムをすべて除去する機能を追加しました。
今回はこの除去機能に除去するアイテムを判別してヘルプウィンドウやメニューは除去対象から除く処理を追加しました。

アイテムの判別方法

ホロモンアプリではアイテムオブジェクトには種別判別用の共通コンポーネントを設定しています。
除去の際、この種別を参照して除去判定を行うように修正しました。

以下の通り、種別を確認して[Window]系のアイテムであれば除去対象から除いています。
・ItemSpawnAPI.cs

using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using HoloMonApp.Content.SupportItem.Objects;
using HoloMonApp.Content.SupportItem.Objects.Windows.BreedingMenuWindow;
using UnityEngine;

namespace HoloMonApp.Content.SupportItem.Spawn
{
    public class ItemSpawnAPI : MonoBehaviour
    {
        // (略)
        public void CleanAllItem()
        {
            // ウィンドウ系のアイテムを除いて片付け
            BItemAccessAPI[] spawnedItems = this.transform.GetComponentsInChildren<BItemAccessAPI>();
            foreach (BItemAccessAPI itemAccessAPI in spawnedItems)
            {
                // Window系は片付け対象外
                if (itemAccessAPI.ItemType == ObjectUnderstandType.Window) continue;
                
                // オブジェクトを除去する
                itemAccessAPI.DestroyObject();
            }
        }
        // (略)
    }
}

これで以下の通り、片付けボタンを押したときメニューは残るようになりました。