Unity ARで任意のオブジェクトを配置したい!    
          ~後編~

AR

前回はメニュー画面の設定をしたので、今回はオブジェクトの割り当てをして実行までやっていこうと思います



オブジェクトの割り当て

こちらはUIManagerスクリプトの一部になります

オブジェクトを今後追加しやすいように家電と家具で2種類のリストを用います

家具のオブジェクト番号をFobjnow、家電のオブジェクト番号をAobjnowとしています

例えば家具のサイズを決定した場合、Fobjnowにそのオブジェクト番号を与え、同時にAobjnowにはわざとリスト範囲外の10000を与えます

家電を設置したあと家具を設置しようとした場合、または家具を設置したあと家電を設置しようとした場合にどちらのリストを使用するのか明確にするためです

こちらは以前使用したCreateObjectのスクリプトを一部変更したものになります

UIManagerで決定されたAobjnowとFobjnowの値をこちらで反映されるようにしています

public List<GameObject> fObjects = new List<GameObject>();

public List<GameObject> aObjects = new List<GameObject>();

家具オブジェクトのリスト名をfObjects、家電オブジェクトのリスト名をaObjectsとしています

public UIManager uimanager;

UIManagerの情報を得るためにアタッチできる状態にしています

if (uimanager.Aobjnow > 9000)
{

  Instantiate(fObjects[uimanager.Fobjnow], hitResults[0].pose.position, Quaternion.identity);

}

これは配置する家具オブジェクトを決定後に画面をタップした時の判定になります

家具オブジェクト決定時にUIManager側のAobjnowに10000が与えられているので、家具オブジェクトリストのFobjnow番目を生成するという流れになります

uimanager.Fonjnowと表記することにより、UIManager側で決定した数値が反映されるようになります

else if (uimanager.Fobjnow > 9000)
{

  Instantiate(aObjects[uimanager.Aobjnow], hitResults[0].pose.position, Quaternion.identity);

}

家電オブジェクトを選択した場合はこちらの流れになります

XR Originにアタッチしてあるスクリプトに家具リスト、家電リスト、UIManagerの項目が追加されています

UIManagerのところにUIManagerスクリプトをアタッチします

続いてリストにオブジェクトを割り当てていきます

サイズごとにスクリプト上で番号を定めているので、それに対応する番号に割り当てます

もふもふ
もふもふ

シビア(;゚Д゚)

実行

これで一通りの作業が完了となるので実行してみたいと思います

メニューバーのEdit→Projeco SettingsでXR Plug-in Managementを選択します

XR Simulationにチェックを入れるとUnity上でテスト可能になるので、今回はこの機能を使います

実行すると・・・

メニューからオブジェクトを選択して表示するという流れが出来ているので、成功です!

このあとAndroidにビルドしても問題なく作動してくれました



まとめ

無事に目的が達成出来て安堵していますが、まだまだ未完成なので引き続き完成に近づけていければと思います。

タイトルとURLをコピーしました