World Locking Tools QRSpacePins (2) |Hierachy構成と重要なクラス
こちらの記事の続きです.
使用環境
- Unity 2019.4.2f1
- Legacy XR (Built-in XR ではWLTは現在使えません)
Adjustment オブジェクト
カメラのオフセットや回転を調整するためにAdjustmentオブジェクトがあります.
World Locking Tools の特色です.
WorldLocking オブジェクト
WorldLockingManager
World Locking Tools の Manager クラスになります.これがHierarchyに配置されるとWLTが発動します. WorldLockingContext.csがアタッチされており,こちらでWLTの設定ができます.
Camera Transform Links は正しく設定しないとWLTがうまくいきません. Adjustment Frame には カメラの親のさらに上位概念の親… ここではAdjustmentになります. Camera Parent は今回は MixedRealityPlayspaceになります.
AnchorGraphVisual
World Locking Tools の空間や世界がどうなっているかを視覚化します. WLT.Toolsをインポートが必須です.これがあるとSponge空間やPinなど描写してくれます.
MarkerPinsRoot オブジェクト
このオブジェクト自体には意味がないですが, その子である Barn_MarkerPins オブジェクトにアタッチされているものが重要だったりします.
QRCodeMiniManager
WLT-QRCode におけるManagerクラスです.このクラスでQRCodeの読取を行ってくれます. スクリプトを読むと,Microsoft.MixedReality.QR.QRCodeWatcherのラッパークラスであることがわかります. 追加,更新,削除,数え上げ完了を通知・検知します.
FYI:
QRSpacePinGroup
Marker Highlight Prefab
QRCodeの位置合わせが完了した際に,表示するオブジェクトです. デフォルトでは黄色い四角のオブジェクトになっています. 自分でPrefabを作ってオリジナルなものを表示するのもよいと思います.
Shared Orienter と Virtual Markers
Orienterスクリプトがアタッチされているオブジェクトを設定します. 仮にSharedOrienterが何も設定されてない場合は,QRSpacePinGroupがアタッチされているオブジェクトに 自動的にOrienterクラスがアタッチされ,SharedOrienterとして設定されます.
Virtual Markers には QRCode位置合わせに利用したいオブジェクトを設定します.
HouseHoldオブジェクトの構成は以下のようになっています.
QRCode位置合わせに利用するオブジェクト群(QRCode_X)の親がMarkersになっています. 親には Orienter クラスをアタッチする必要があります.
また,QRCode位置合わせに利用するオブジェクト群の名前はQRCode_1,QRCode_2,QRCode_3,・・・となっていますが, QRSpacePinGroup.csのスクリプトを読むと命名規則があり,以下の通りになります.
適当な英数字 + "_" (アンダーバー) + X (1以上の数字) ex. ) QRCode_1,XRDNK_2
数字を0にしたときはエラーが出ました.配列範囲外エラーだったかな. アンダーバーの前の文字は何でもよかったと思います.XRDNK_2は読み込めました.QRCodeじゃなくてもよい.
QRCodeを作成する際は,文字列データに位置合わせに利用するオブジェクト群の名前と一致する必要があります.
Virtual Markers の向きなどに関しては細心を払う必要がありますが…続きは後日.