ARFoundation快速入门-08平面检测

   日期:2020-05-10     浏览:263    评论:0    
核心提示:一、准备工作1.打开Unity新建一个空场景,将场景中默认的“Main Camera”删除掉2.Hierarchy->XR->AR Session Origin创建AR Session Origin组件3.Hierarchy->XR->AR Session 创建AR Session组件二、平面检测管理您可以指定检测模式,可以是水平,垂直或两者兼有。一些平台需要额外的工作来执行垂直平面检测,因此,如果仅需要水平平面,则应禁用垂直平面检测。..游戏

一、准备工作

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.打包并且运行

 

四、隐藏和显示平面显示

ps:这里只是通过改变材质球的透明度来达到显示和隐藏平面的效果

 private ARPlaneManager m_ARPlaneManager = null;

 private Color m_DefaultPlaneColor = new Color(112f / 255f, 253f / 255f, 60f / 255f, 80f / 255f);
 private Color m_TransparentPlaneColor = new Color(112f / 255f, 253f / 255f, 60f / 255f, 0);

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

 private void SetPlanesActive(bool value)
    {
        if (value) m_ARPlaneManager.planePrefab.gameObject.GetComponent<MeshRenderer>().material.color = m_DefaultPlaneColor;
        else m_ARPlaneManager.planePrefab.gameObject.GetComponent<MeshRenderer>().material.color = m_TransparentPlaneColor;

        foreach (var plane in m_ARPlaneManager.trackables)
        {
            if (value) plane.gameObject.GetComponent<MeshRenderer>().material.color = m_DefaultPlaneColor;
            else plane.gameObject.GetComponent<MeshRenderer>().material.color = m_TransparentPlaneColor;
        }
    }

 

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

 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;

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服