MRが楽しい

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

HoloLens2でホロモンアプリを作る その114(ヘルプウィンドウとスタンドを別々に管理する)

本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
ヘルプウィンドウとスタンドを別々に管理する修正を行いました。

ヘルプウィンドウとスタンド

これまで共通のプレハブで管理していたヘルプウィンドウとスタンドを別々のプレハブに切り分けました。


各アイテムごとに以下のようなアクセス用のスクリプトを持たせて別々にスポーン用メソッドを呼び出す形に実装しなおしています。
現状デバッグの簡易化のため、オブジェクトの有効無効でスポーンを管理していますが、後々はここも Instantiate() に改修していきます。
・RepositoriesItemStandAPI.cs

using HoloMonApp.Content.SupportItem.Objects.Stands.FloatingStand;
using HoloMonApp.Content.SupportItem.Objects.Windows.HelpWindow;
using UnityEngine;
using UnityEngine.Serialization;

namespace HoloMonApp.Content.Character.Repositories.ItemAccess.Stands
{
    /// <summary>
    /// スタンドアイテムのAPI
    /// </summary>
    public class RepositoriesItemStandAPI : MonoBehaviour
    {
        [SerializeField, Tooltip("浮遊スタンドAPIの参照")]
        private ItemFloatingStandAccessAPI p_ItemFloatingStandAccessAPI;
        
        [SerializeField, Tooltip("ヘルプウィンドウAPIの参照")]
        private ItemHelpWindowAccessAPI p_ItemHelpWindowAccessAPI;

        public void SpawnStand(Pose a_TargetPose, Transform a_TargetTransform, float a_TargetHeight)
        {
            // TODO: アイテムのスポーン処理は Instantiate() に改修予定
            p_ItemFloatingStandAccessAPI.gameObject.SetActive(true);
            p_ItemFloatingStandAccessAPI.SpawnObject(a_TargetPose);
            
            // TODO: アイテムのスポーン処理は Instantiate() に改修予定
            p_ItemHelpWindowAccessAPI.gameObject.SetActive(true);
            p_ItemHelpWindowAccessAPI.SpawnObject(a_TargetPose, a_TargetTransform, a_TargetHeight);
        }
    }
}

目的としてはホロモンアプリのシェアリング実装を進めるに当たり、個々のオブジェクトごとにトランスフォームを操作して送受信するデータを簡略化するためです。
基本的に多くのオブジェクトはトランスフォームの共有で状態を共有できるように改修を進めていきます。

他のオブジェクトもアイテム本体とスタンド、ヘルプウィンドウが一括で管理されているので次はこちらも切り分けていきます。