該示例演示了如何可(kě)視化現實世界中(zhōng)檢測到的平面。有(yǒu)關平面檢測/跟蹤的基本信息以及 AR Foundation 的 AR Plane Manager 組件的功能(néng),請參考 Unity 文(wén)檔。要使用(yòng)此功能(néng),必須在 OpenXR 插件設置中(zhōng)啓用(yòng)它,路徑為(wèi):項目設置 > XR 插件管理(lǐ) > OpenXR (> Android 選項卡)。
示例的工(gōng)作(zuò)原理(lǐ)
首先,确保在 OpenXR 項目設置中(zhōng)啓用(yòng)了平面檢測功能(néng)。
要在體(tǐ)驗中(zhōng)看到平面,場景中(zhōng)隻需添加兩個組件。将 ARPlaneManager 添加到 ARSession GameObject 上,将啓用(yòng) Snapdragon Spaces 包中(zhōng)的平面子系統。該組件提供了一個字段,用(yòng)于定義在創建平面時生成的預制件。此預制件附加了 AR Plane 和 AR Plane Mesh Visualizer 組件,以及 Mesh Renderer 和 Line Renderer。AR Plane Mesh Visualizer 組件會定期調整網格和線(xiàn)條,從而繪制出帶有(yǒu)填充和邊框的平面,可(kě)以通過修改渲染器的材料和屬性來調整這些外觀。此外,還可(kě)以在預制件上添加 Mesh Collider 組件,以接收射線(xiàn)檢測的命中(zhōng)。
功能(néng)設置
功能(néng)設置可(kě)以通過點擊 OpenXR 項目設置中(zhōng)平面檢測功能(néng)旁的齒輪圖标來找到。
● 使用(yòng)場景理(lǐ)解平面檢測:
○ 啓用(yòng)或禁用(yòng)此設置會影響檢測到的平面的形狀和數量。
○ 啓用(yòng)此設置後,将使用(yòng)場景理(lǐ)解來檢測平面,這與空間網格(實驗)功能(néng)使用(yòng)的技(jì )術相同。
○ 啓用(yòng)場景理(lǐ)解平面檢測時,用(yòng)戶可(kě)以在運行示例時選擇是否啓用(yòng)凸包(Convex Hull)選項。
○ 禁用(yòng)場景理(lǐ)解平面檢測時,凸包選項默認啓用(yòng),用(yòng)戶在運行示例時無法取消選中(zhōng)。
○ 啓用(yòng)凸包時,使用(yòng)檢測到的平面的凸包生成更複雜的形狀。禁用(yòng)時,将根據檢測到的平面範圍生成平面。
○ 如果無法加載場景理(lǐ)解,此功能(néng)将自動表現為(wèi)禁用(yòng)了場景理(lǐ)解平面檢測。
默認平面檢測與基于場景理(lǐ)解的平面檢測的區(qū)别
指标 | 默認設置 | 場景理(lǐ)解 |
檢測速度和首次檢測 | 正常 | 快速 |
誤報情況 | 誤報較少 | 容易出現誤報 |
平面準确性 | 高 | 高 |
平面數量 | 少 | 多(duō) |
平面更新(xīn)和移動 | 穩定,更新(xīn)不頻繁 | 動态,平面更新(xīn)更多(duō) |
平面方向過濾 | 提供水平和垂直過濾選項 | 無過濾選項 |
命中(zhōng)測試 | 對平面進行預期的命中(zhōng)測試 | 對網格進行命中(zhōng)測試 |