ARFoundation快速入门-08平面检测一

一、准备工作

1.打开Unity新建一个空场景,将场景中默认的“Main Camera”删除掉

2.Hierarchy->XR->AR Session Origin 创建AR Session Origin组件

3.Hierarchy->XR->AR Session 创建AR Session组件

二、平面检测管理

您可以指定检测模式,可以是水平,垂直或两者兼有。一些平台需要额外的工作来执行垂直平面检测,因此,如果仅需要水平平面,则应禁用垂直平面检测。 

三、可视化平面

1.Hierarchy->XR->AR Default Plane 创建AR Default Plane

2.将AR Default Plane 制作成Prefab 并且将 Hierarchy 面板中 AR Default Plane 删除掉

3.AR Plane组件负责该平面各类属性事宜,

4.将ARPlaneManager->Plane Prefab 设置成 AR Default Plane

5.打包并且运行

四、开启或关闭平面检测和平面可视化


   /// <summary>
    /// 切换平面检测和平面可视化
    /// </summary>
    public void TogglePlaneDetection()
    {
        m_ARPlaneManager.enabled = !m_ARPlaneManager.enabled;

        string planeDetectionMessage = "";
        if (m_ARPlaneManager.enabled)
        {
            planeDetectionMessage = "Disable Plane Detection and Hide Existing";
            SetAllPlanesActive(true);
        }
        else
        {
            planeDetectionMessage = "Enable Plane Detection and Show Existing";
            SetAllPlanesActive(false);
        }

        if (togglePlaneDetectionText != null)
            togglePlaneDetectionText.text = planeDetectionMessage;
    }

    /// <summary>
    /// 显示或隐藏平面可视化
    /// </summary>
    private void SetAllPlanesActive(bool value)
    {
        foreach (var plane in m_ARPlaneManager.trackables)
            plane.gameObject.SetActive(value);
    }


五、动态设置平面检测模式

private ARPlaneManager m_ARPlaneManager=null;

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

//设置只检查水平平面

 m_ARPlaneManager.detectionMode = PlaneDetectionMode.Horizontal;

//设置只检查垂直平面

 m_ARPlaneManager.detectionMode = PlaneDetectionMode.Vertical;

//设置检查水平平面和垂直平面

  m_ARPlaneManager.detectionMode = PlaneDetectionMode.Horizontal | PlaneDetectionMode.Vertical;

官方教程地址

ARFoundation Samples 

欢迎对AR技术感兴趣的朋友,加入QQ群:883655607 讨论  

猜你喜欢

转载自blog.csdn.net/a451319296/article/details/106023882