見出し画像

AR Foundation の Plane 表示切り替えする方法

画像1

AR Foundation の AR Plane Managerを使用して平面検出したところPlaneを表示することができます。

このPlaneをアプリケーション上で表示/非表示の切り替えを行う方法について説明します。

Planeの表示切り替えスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;

[RequireComponent(typeof(ARPlaneManager))]
public class PlaneDetection : MonoBehaviour
{
   private bool m_PlaneVisible = false;
   // Start is called before the first frame update
   void Start()
   {
       
   }

   // Update is called once per frame
   void Update()
   {
       foreach (var plane in m_ARPlaneManager.trackables)
       {
           plane.gameObject.SetActive(m_PlaneVisible);
       }
   }

   public void SetAllPlanesActive()
   {
       m_PlaneVisible = !m_PlaneVisible;
   }

   void Awake()
   {
       m_ARPlaneManager = GetComponent<ARPlaneManager>();
   }

   ARPlaneManager m_ARPlaneManager;
}

ARPlaneManagerのtrackablesに生成されたPlaneを取得することができます。

AR Session Originにスクリプトを追加

上記のスクリプトをAR Session Originに追加します。

スクリーンショット 2021-02-05 2.30.05

表示切り替えの呼び出し

ボタンなど表示切り替え時にPlaneDetectionスクリプトのSetAllPlanesActiveを呼び出すことで、生成されたPleneのアクティブ状態を切り替えることができます。

最後に

OnePlanetは、AR技術をベースに未来のユーザー体験/ユースケースを創造することに挑戦しているARスタートアップです。
様々なテクノロジーにより現実とバーチャルの境界は日々曖昧になり、すでに信じられないような感動体験ができる世の中になりつつあります。

そんなOnePlanetでは、参加してくれるメンバーを募集中です!

OnePlanet Tech Magazine


この記事が参加している募集

最近の学び