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

一、准备工作

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

ARFoundation快速入门-08平面检测一_第1张图片

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

ARFoundation快速入门-08平面检测一_第2张图片

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

ARFoundation快速入门-08平面检测一_第3张图片

ARFoundation快速入门-08平面检测一_第4张图片

二、平面检测管理

ARFoundation快速入门-08平面检测一_第5张图片

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

ARFoundation快速入门-08平面检测一_第6张图片

 

三、可视化平面

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

ARFoundation快速入门-08平面检测一_第7张图片

ARFoundation快速入门-08平面检测一_第8张图片

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

ARFoundation快速入门-08平面检测一_第9张图片

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

ARFoundation快速入门-08平面检测一_第10张图片

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

ARFoundation快速入门-08平面检测一_第11张图片

5.打包并且运行

 

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


   /// 
    /// 切换平面检测和平面可视化
    /// 
    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;
    }

    /// 
    /// 显示或隐藏平面可视化
    /// 
    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();
    }

//设置只检查水平平面

 m_ARPlaneManager.detectionMode = PlaneDetectionMode.Horizontal;

//设置只检查垂直平面

 m_ARPlaneManager.detectionMode = PlaneDetectionMode.Vertical;

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

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

 

推荐学习资料

1.Unity官方API:学习一门技术,官方教程是最权威的

2.ARFoundation Samples :ARFoundation 示例地址

3. ARFoundation之路: 作者:yolon3000,目前找到的ARFoundation教程中最全面的

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

你可能感兴趣的:(ARFoundation)