設定應用程式,讓應用程式能夠使用 Geospatial API。
必要條件
請務必先瞭解基本 AR 概念,並瞭解如何設定 ARCore 工作階段,再繼續操作。
如要進一步瞭解 Geospatial API,請參閱 Geospatial API 簡介。
如果您是 ARCore 開發新手,請參閱「開發入門」一文,瞭解軟體和硬體需求、前置條件,以及其他特定平台的相關資訊。
如要使用 ARCore Geospatial API,您的專案必須支援 AR Foundation 和 ARCore 擴充功能。
啟用 ARCore API
在應用程式中使用視覺定位系統 (VPS) 前,您必須先在新的或現有 Google Cloud 專案中啟用 ARCore API。這項服務負責代管、儲存及解析地理空間錨點。
建議使用無金鑰授權,但也支援 API 金鑰授權。
將必要的程式庫新增至應用程式
授權應用程式呼叫 ARCore API 後,您必須新增程式庫,才能在應用程式中啟用地理空間功能。
- 依序前往「Edit」 >「Project Settings」 >「XR Plug-in Management」 >「ARCore Extensions」。確認已選取「iOS Support Enabled」。
- 在「選用功能」下方,選取「地理空間」。
在工作階段設定中啟用地理空間功能
在應用程式中啟用 Geospatial 功能後,請在應用程式的 AR 工作階段設定中啟用 Geospatial 功能,以便與 ARCore API 通訊:
- 請確認專案的 Assets 資料夾包含可編寫指令碼的 ARCoreExtensionsConfig 物件。如要建立這項資源,請在「Assets」窗格中按一下滑鼠右鍵,然後依序選取「Create」 >「XR」 >「ARCore Extensions Config」。
在「Assets」資料夾中選取「ARCoreExtensionsConfig」可編碼物件,然後將「Geospatial Mode」設為「Enabled」。
設定 ARCore Extensions 遊戲物件,以便使用 ARCoreExtensionsConfig 設定。在「層級」窗格中,找出您在初始設定 ARCore 擴充功能時建立的「ARCore Extensions」遊戲物件,然後將「ARCore Extensions Config」欄位連結至「Assets」資料夾中的「ARCoreExtensionsConfig」可編寫指令碼的物件。
提示使用者允許使用裝置資料
使用 ARCore Geospatial API 的應用程式必須向使用者顯示提示,讓使用者確認並允許使用裝置資料。詳情請參閱「使用者隱私權規定」。
檢查裝置相容性
並非所有支援 ARCore 的裝置都支援 Geospatial API。如要檢查使用者的裝置相容性,請呼叫 AREarthManager.IsGeospatialModeSupported()
。如果傳回 FeatureSupported.Unsupported
,請勿嘗試設定工作階段。
在執行階段要求使用者提供位置存取權
如要在觸發執行階段權限要求的指令碼中啟用 Unity 的位置服務,請執行下列操作:
在 Project Settings > iOS > Other Settings > Location Usage Description 中,輸入要求權限的應用程式名稱。
啟用 Unity 的定位服務,以便觸發執行階段權限要求,如下所示:
public void OnEnable() { Input.location.Start(); } public void OnDisable() { Input.location.Stop(); }
詳情請參閱 Unity 的
LocationService
說明文件。
查看裝置目前位置的 Geospatial 供應情形
由於 Geospatial API 會結合 VPS 和 GPS 來判斷地理空間姿勢,因此只要裝置能夠判斷自身位置,即可使用此 API。在 GPS 精確度較低的區域 (例如室內空間和擁擠的都會環境),API 會依靠 VPS 涵蓋範圍產生高精確度姿勢。在一般情況下,VPS 的位置精確度約為 5 公尺,旋轉精確度約為 5 度。使用 AREarthManager.CheckVpsAvailability()
判斷特定位置是否有 VPS 涵蓋範圍。
地理空間 API 也適用於未涵蓋 VPS 的區域。在沒有或幾乎沒有上方遮蔽物的室外環境中,GPS 可能就足以產生精確度極高的姿勢。
後續步驟
- 取得裝置相機的地理空間姿勢,以便判斷使用者裝置在真實世界中的確切位置。
- 查看裝置所在位置是否有 VPS。