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;
推荐学习资料
2.Unity官方API:学习一门技术,官方教程是最权威的
3.ARFoundation Samples : ARFoundation 示例地址
欢迎对AR技术感兴趣的朋友,加入QQ群:883655607 讨论