ARCore Cloud Anchor API (或 ARCore Cloud Anchor 服務) 可為 iOS 應用程式提供雲端錨點功能,讓 iOS 和 Android 裝置的使用者都能分享 AR 體驗。
本指南說明如何:
- 設定開發環境以便與 Cloud Anchors 搭配使用
- 在範例應用程式中試用錨點代管和解析功能
必要條件
- Xcode 13.0 以上版本
- 如果使用 Cocoapods,請使用 1.4.0 以上版本
- 搭載 iOS 12.0 以上版本的 ARKit 相容 Apple 裝置 (必須指定 iOS 12.0 以上版本為部署目標)
使用 Cloud Anchors
以下步驟會使用 Cloud Anchors 範例應用程式,說明設定及建構支援 ARCore Cloud Anchors 的應用程式時的重要工作。
取得 Cloud Anchors 範例應用程式
從 GitHub 複製或下載 ARCore SDK for iOS,取得應用程式範例程式碼。
開啟 Terminal 或 Finder 視窗,然後前往複製或下載 SDK 的資料夾。
您可以在
/arcore-ios-sdk-master/Examples/CloudAnchorExample
中找到應用程式程式碼範例。持續性雲端錨點範例應用程式程式碼位於
/arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
。
工作階段設定
在設定工作階段時,範例應用程式會執行下列重要工作:
- 建立
GARSession
- 建立
ARSession
並執行 - 設定
ARSessionDelegate
。 - 將
ARFrame
傳遞至session:didUpdateFrame:
方法中的GARSession
。
設定 Cloud Anchor ID 共用
Cloud Anchors 範例應用程式會使用 Firebase,在裝置之間分享 Cloud Anchor ID。您可以在自己的應用程式中使用其他解決方案。
如要在範例應用程式中設定 Firebase 資料庫,請按照下列步驟操作:
- 請按照 Firebase 操作說明將 Firebase 新增至應用程式。
- 下載在將 Firebase 新增至應用程式時產生的
GoogleService-Info.plist
檔案。 - 為範例啟用 Firebase 儲存空間:
- 前往 Firebase 主控台,然後選取您為範例應用程式設定的專案。
- 選取 Database 面板。
- 在 Realtime Database 選項上,按一下 Get Started。
- Security rules for Realtime Database 選單隨即開啟。
- 如要執行範例,請選取 Start in test mode。
- 請注意,如果您打算為要發布的應用程式使用 Firebase,應採用更嚴格的安全性規則。
- 在 Xcode 中,將
GoogleService-Info.plist
檔案新增至應用程式,放在Info.plist
旁邊。
設定 ARCore API
如要使用 Cloud Anchors,您必須先為應用程式設定 ARCore API。
執行 Pod 更新
CloudAnchorExample 應用程式隨附預先設定的 Podfile
,其中包含 ARCore SDK 和所需的 iOS 版本。如要安裝這些依附元件,請按照下列步驟操作:
- 開啟終端機視窗,然後從 Xcode 專案所在的資料夾執行
pod update
。
這會產生.xcworkspace
檔案,供您稍後用於建構及執行應用程式。
如要進一步瞭解如何在應用程式中設定 Podfile
,請參閱「在應用程式中加入 ARCore SDK」。
在 Xcode 中開啟專案的
.xcworkspace
檔案。為避免發生建構錯誤,請務必從
.xcworkspace
檔案建構,而非.xcodeproj
檔案。
變更應用程式套件 ID
在 Xcode 中變更應用程式的套件 ID,以便與團隊簽署應用程式。
建立應用程式並加以執行
連接裝置,並在 Xcode 中啟動應用程式。
(選用) 如果您要建構及執行範例應用程式,請參閱下文,瞭解如何使用應用程式代管及解析 Cloud Anchor。
試用範例應用程式
從
.xcworkspace
檔案建構並執行範例應用程式,即可在裝置上啟動應用程式。系統提示時,請授予應用程式相機權限。ARKit 就會開始偵測相機前方的平面。
輕觸 HOST 即可進入主控模式。系統會產生共用主控畫面代碼,並顯示在畫面上。
輕觸飛機即可開始在該處代管雲端錨點。
- 應用程式會將 Andy Android 物件放在平面上,並附加錨點。
- 主機要求會傳送至 ARCore API 雲端端點。主機要求包含資料,代表錨點相對於附近視覺特徵的位置。
- 錨點託管後,會取得 ID,用於解析這個空間中的雲端錨點。
輕觸 RESOLVE 並輸入房間代碼,即可使用相同或其他裝置存取先前為此房間代管的 Cloud Anchor。
- 解決要求會傳送至 ARCore API 雲端端點。
- 解析要求包含雲端錨點 ID。如果 ID 與已代管錨點相符,且本地化成功,伺服器會以本機座標傳回錨點的轉換。
- 範例應用程式會使用轉換功能,將錨點新增至場景,並轉譯連結至該錨點的虛擬物件。
在應用程式中加入 ARCore SDK
在您自己的應用程式中,您需要更新 Podfile
,以納入 ARCore SDK 和支援的 iOS 版本。步驟如下:
將下列
platform
和pod
新增至專案的Podfile
:platform :ios, '11.0' pod 'ARCore/CloudAnchors', '~> 1.48.0'
- 開啟終端機視窗,然後從 Xcode 專案所在的資料夾執行
pod update
。
會產生.xcworkspace
檔案,供您用來建構及執行應用程式。
永久雲端錨點
如持續性託管 Cloud Anchor一文所述,您可以為 Cloud Anchor 設定最長 365 天的存留期限。您可以在 GitHub 上的 iOS 版 ARCore SDK /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
目錄中,找到使用持久雲端錨點的範例程式碼。
後續步驟
請參閱 iOS 版 Cloud Anchors 開發人員指南,瞭解應用程式範例程式碼,以及如何在自家應用程式中使用 Cloud Anchors。
請參閱 ARCore iOS API 參考資料中的詳細說明。