ARFoundation系列讲解-09平面检测一

一、准备工作

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;

 

推荐学习资料

1.ARFoundation系列讲解-教程目录

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

3.ARFoundation Samples : ARFoundation 示例地址

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

posted @ 2020-10-29 00:22  DaLiangChen  阅读(1016)  评论(0编辑  收藏  举报