為指定 Android 的 Unity (AR Foundation) 應用程式啟用地理空間 API

調整應用程式設定,讓應用程式使用 Geospatial API

必備條件

請務必先瞭解基本 AR 概念,以及如何設定 ARCore 工作階段,然後再繼續操作。

如要進一步瞭解地理空間 API,請參閱「地理空間 API 簡介」。

如果您是第一次使用 ARCore 進行開發,請參閱入門指南,瞭解軟體和硬體需求、必要條件,以及所用平台專屬的其他資訊。

如要使用 ARCore Geospatial API,您的專案必須支援 AR FoundationARCore Extensions for AR Foundation

啟用 ARCore API

在應用程式中使用視覺定位系統 (VPS) 之前,您必須先在新的或現有的 Google Cloud 專案中啟用 ARCore API。這項服務負責代管、儲存及解析地理空間錨點。

建議提供無金鑰授權,不過系統也支援 API 金鑰授權。

在應用程式中新增必要程式庫

授權應用程式呼叫 ARCore API 後,您必須新增程式庫,才能在應用程式中啟用地理空間功能。

  1. 依序前往 [Edit] (編輯) > [Project Settings] (專案設定) > [XR Plug-In Management] (XR 外掛程式管理) > [ARCore Extensions] (ARCore 擴充功能)
  2. 在「選用地圖項目」下方,選取「地理空間」

在工作階段設定中啟用地理空間功能

在應用程式中啟用地理空間功能後,請在應用程式的 AR 工作階段設定中啟用地理空間功能,讓應用程式與 ARCore API 通訊:

  1. 確認專案 Assets 資料夾中包含 ARCoreExtensionsConfig 可指令碼物件。如要建立版本,請在「Assets」窗格中按一下滑鼠右鍵,然後依序選取「Create」 >「XR」 >「ARCore Extensions Config」
  2. 在「Assets」資料夾中選取 ARCoreExtensionsConfig 指令碼物件,然後將「地理空間模式」設為「已啟用」

  3. ARCore Extensions 遊戲物件設為使用 ARCoreExtensionsConfig 設定。在「Hierarchy」窗格中,找出您最初設定 ARCore Extensions 時建立的 ARCore Extensions 遊戲物件,然後將「ARCore Extensions Config」欄位連結到「Assets」資料夾中的「ARCoreExtensionsConfig」可編碼物件。

提示使用者允許使用裝置資料

使用 ARCore Geospatial API 的應用程式必須向使用者顯示提示,確認並允許使用裝置中的資料。詳情請參閱「使用者隱私權規定」。

檢查裝置相容性

並非所有支援 ARCore 的裝置都支援 Geospatial API。如要檢查使用者的裝置相容性,請呼叫 AREarthManager.IsGeospatialModeSupported()。如果傳回 FeatureSupported.Unsupported,系統不會嘗試設定工作階段。

在執行階段要求使用者授予位置存取權

ARCoreExtensions.Update() 中啟用地理空間模式時,ARCore Extensions 會自動要求適當的位置存取權。如果使用者未授予精確位置存取權,工作階段就無法恢復,且會發生「未授予權限」錯誤。此為終止錯誤,需要重新啟動才能再次觸發權限要求。

查看裝置目前位置的地理空間可用性

由於地理空間 API 會結合 VPS 和 GPS 來判定地理空間位置,因此只要裝置能判斷出其位置,即可使用該 API。在 GPS 準確度偏低的地區 (例如室內空間和人口密集的都市環境),API 就會仰賴 VPS 覆蓋範圍來產生高精確度姿勢。在一般情況下,VPS 的位置精確度可達到約 5 公尺,旋轉精確度為 5 度。使用 AREarthManager.CheckVpsAvailability() 判斷特定位置是否有 VPS 涵蓋率。

地理空間 API 也可用於沒有 VPS 涵蓋範圍的區域。在幾乎沒有俯瞰障礙的戶外環境中,GPS 可能足以產生具有高準確度的姿勢。

後續步驟