Unity AR 多種オブジェクトの配置

AR

前回はキューブをカメラ画面上に表示するところまで出来たので、今回は画面をタップするごとに別のモデルを表示することにチャレンジしたいと思います



平面検出

XR OriginにARPlaneManagerというスクリプトを追加します

GameObject→XR→AR Default Planeを選択します

Hierarchyウインドウからprojectウインドウにドラッグ→ARPlaneManagerのPlane Prafabにドラッグ

HierarchyウインドウのAR Default Planeを削除します

レイキャスト

XR OriginにAR Raycast Managerを追加します

続いて新規スクリプトをを追加します

以下のスクリプトは書籍を参考にして一部命令を追加したものになります

元のスクリプトは画面をタップしたポイントにレイキャストによるヒット判定を行い、平面検出された平面と接触した時のみオブジェクトを生成するというものです

・public List<GameObject> gameObjects = new List<GameObject>();

  これによりモデルのリストを生成しています

・private int objnow;

  現在選択されているモデルの番号

・ObjectCount = gameObjects.Count;

  ObjectCountに、リストにあるモデルの総個数を入れています

・Instantiate(gameObjects[objnow],・・・

  objnow番目のモデルを生成します

・objnow++; objnow %= ObjectCount;

  objnowに+1したあと、ObjectCountで割った余りを入れています

  これにより0番目からObjectCount番目になったあと、また0番目に戻るようになります

  こうすることで、あとからリストを増やした場合もObjectCountの数値が増加するので対応可能と  

  なります

リストにモデルを追加

スクリプトによりGame Objectsというリストが生成されているので、モデルをそこにドラッグすることでリストに追加されます

今回は4種類のモデルをリストに追加しました(0~3番目、計4)

実行

平面検出した場所をタップすると、順序良くモデルが出現してくれました!



まとめ

複数のオブジェクトを管理することが出来たので、任意選択等可能なように改良していこうと思います。

参考文献:森 哲哉、布留川 英一、西森 文俊、車谷 勇人、一條 貴彰、打田 恭平、轟 昂、室星 亮太、井本 大登、細田 翔、西岡 陽、平井 佑樹、コポコポ、すいみん、Maruton、Karukaru、ハダシ A、notargs、EIKI‛、おれんじりりぃ、黒河 優介、中村 優一、藤岡 裕吾  

UNITYゲーム プログラミング・バイブル2nd GENERATION 株式会社ボーンデジタル 2021 558ページ

  

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