一、准備工作
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 討論