ARCore Cloud Anchor API (API neo đậu trên đám mây ARCore) hoặc Dịch vụ neo đậu trên đám mây ARCore cung cấp các tính năng neo đậu trên đám mây cho ứng dụng iOS, cho phép người dùng trên cả thiết bị iOS và Android chia sẻ trải nghiệm AR.
Hướng dẫn này sẽ hướng dẫn bạn cách:
- Thiết lập môi trường phát triển để hoạt động với Cloud Anchor
- Thử lưu trữ và phân giải neo trong ứng dụng mẫu
Điều kiện tiên quyết
- Xcode phiên bản 13.0 trở lên
- Cocoapods 1.4.0 trở lên nếu bạn sử dụng Cocoapods
- Thiết bị Apple tương thích với ARKit chạy iOS 12.0 trở lên (bắt buộc phải có mục tiêu triển khai iOS 12.0 trở lên)
Sử dụng tính năng neo trên đám mây
Các bước sau đây sử dụng ứng dụng mẫu Cloud Anchors để cho bạn thấy các nhiệm vụ quan trọng để định cấu hình và tạo một ứng dụng hỗ trợ Cloud Anchors của ARCore.
Tải ứng dụng mẫu Cloud Anchors
Sao chép hoặc tải SDK ARCore dành cho iOS từ GitHub xuống để lấy mã ứng dụng mẫu.
Mở cửa sổ Terminal hoặc Finder rồi chuyển đến thư mục mà bạn đã sao chép hoặc tải SDK xuống.
Bạn có thể tìm thấy mã ứng dụng mẫu trong
/arcore-ios-sdk-master/Examples/CloudAnchorExample
.Mã ứng dụng mẫu mối liên kết đám mây ổn định nằm trong
/arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
.
Thiết lập phiên
Ứng dụng mẫu thực hiện các nhiệm vụ quan trọng sau đây trong quá trình thiết lập phiên:
- Tạo
GARSession
- Tạo
ARSession
và chạy tệp này - Thiết lập
ARSessionDelegate
. - Truyền
ARFrame
vàoGARSession
trong phương thứcsession:didUpdateFrame:
.
Thiết lập tính năng chia sẻ mã nhận dạng Cloud Anchor
Ứng dụng mẫu Cloud Anchors sử dụng Firebase để chia sẻ mã nhận dạng Cloud Anchor giữa các thiết bị. Bạn có thể sử dụng một giải pháp khác trong ứng dụng của riêng mình.
Cách thiết lập cơ sở dữ liệu Firebase trong ứng dụng mẫu:
- Làm theo hướng dẫn của Firebase để thêm Firebase vào ứng dụng.
- Tải tệp
GoogleService-Info.plist
được tạo trong quá trình thêm Firebase vào ứng dụng. - Bật bộ nhớ Firebase cho mẫu:
- Chuyển đến bảng điều khiển của Firebase rồi chọn dự án mà bạn đã thiết lập cho ứng dụng mẫu.
- Chọn bảng điều khiển Database.
- Trên tuỳ chọn Realtime Database, hãy nhấp vào Get Started.
- Trình đơn Security rules for Realtime Database sẽ mở ra.
- Để chạy mẫu, hãy chọn Start in test mode.
- Xin lưu ý rằng nếu đang sử dụng Firebase cho một ứng dụng mà bạn dự định phát hành, bạn nên sử dụng các quy tắc bảo mật hạn chế hơn.
- Trong Xcode, hãy thêm tệp
GoogleService-Info.plist
vào ứng dụng bên cạnhInfo.plist
.
Thiết lập API ARCore
Để sử dụng Điểm neo trên đám mây, trước tiên, bạn phải thiết lập API ARCore cho ứng dụng của mình.
Chạy bản cập nhật pod
Ứng dụng CloudAnchorExample đi kèm với Podfile
được định cấu hình trước bằng SDK ARCore và các phiên bản iOS mà bạn cần. Cách cài đặt các phần phụ thuộc này:
- Mở cửa sổ Dòng lệnh và chạy
pod update
từ thư mục chứa dự án Xcode.
Thao tác này sẽ tạo một tệp.xcworkspace
mà bạn sẽ sử dụng sau để tạo và chạy ứng dụng.
Hãy xem phần Thêm SDK ARCore vào ứng dụng để biết thông tin chi tiết về cách định cấu hình Podfile
trong ứng dụng của riêng bạn.
Mở tệp
.xcworkspace
cho dự án trong Xcode.Để tránh lỗi bản dựng, hãy đảm bảo bạn đang tạo bản dựng từ tệp
.xcworkspace
chứ không phải tệp.xcodeproj
.
Thay đổi mã gói ứng dụng
Trong Xcode, hãy thay đổi mã nhận dạng gói của ứng dụng để bạn có thể ký ứng dụng cùng với nhóm của mình.
Tạo và chạy ứng dụng
Kết nối thiết bị và chạy ứng dụng trong Xcode.
(Không bắt buộc) Nếu bạn đang tạo và chạy ứng dụng mẫu, hãy xem phần sau đây để biết thông tin chi tiết về cách sử dụng ứng dụng để lưu trữ và phân giải Điểm neo trên đám mây.
Thử ứng dụng mẫu
Tạo bản dựng và chạy ứng dụng mẫu từ tệp
.xcworkspace
để chạy ứng dụng trên thiết bị.Nếu được nhắc, hãy cấp quyền truy cập vào máy ảnh cho ứng dụng. Sau đó, ARKit sẽ bắt đầu phát hiện các mặt phẳng trước máy ảnh.
Nhấn vào HOST để chuyển sang chế độ lưu trữ. Hệ thống sẽ tạo và hiển thị một mã phòng để chia sẻ phần nội dung được lưu trữ trên màn hình của bạn.
Nhấn vào một máy bay để bắt đầu lưu trữ một neo trên đám mây tại đó.
- Ứng dụng đặt một đối tượng Android Andy trên mặt phẳng và đính kèm một neo vào đối tượng đó.
- Yêu cầu lưu trữ được gửi đến điểm cuối trên đám mây của API ARCore. Yêu cầu của máy chủ bao gồm dữ liệu thể hiện vị trí của neo tương ứng với các tính năng hình ảnh gần đó.
- Sau khi được lưu trữ, liên kết sẽ nhận được một mã nhận dạng dùng để phân giải liên kết trên đám mây trong không gian này.
Nhấn vào RESOLVE rồi nhập mã phòng để truy cập vào các Điểm neo trên đám mây đã lưu trữ trước đó cho phòng này, bằng cùng một thiết bị hoặc thiết bị khác.
- Yêu cầu phân giải được gửi đến điểm cuối trên đám mây của API ARCore.
- Yêu cầu phân giải bao gồm mã neo trên đám mây. Nếu mã nhận dạng khớp với một neo được lưu trữ và quá trình bản địa hoá thành công, máy chủ sẽ trả về phép biến đổi của neo trong toạ độ cục bộ của bạn.
- Ứng dụng mẫu sử dụng phép biến đổi để thêm neo vào cảnh và kết xuất các đối tượng ảo được đính kèm vào neo đó.
Thêm SDK ARCore vào ứng dụng
Trong ứng dụng của riêng mình, bạn cần cập nhật Podfile
để thêm SDK ARCore và phiên bản iOS được hỗ trợ. Để thực hiện việc này:
Thêm
platform
vàpod
sau vàoPodfile
của dự án:platform :ios, '11.0' pod 'ARCore/CloudAnchors', '~> 1.48.0'
- Mở cửa sổ Dòng lệnh và chạy
pod update
từ thư mục chứa dự án Xcode.
Thao tác này sẽ tạo một tệp.xcworkspace
mà bạn dùng để tạo và chạy ứng dụng.
Neo cố định trên đám mây
Như mô tả trong phần Lưu trữ một neo trên đám mây có tính chất ổn định, bạn có thể đặt thời gian tồn tại cho neo trên đám mây lên đến 365 ngày. Bạn có thể xem mã mẫu để sử dụng neo đám mây ổn định trong thư mục /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
của SDK ARCore cho iOS trên GitHub.
Các bước tiếp theo
Xem Hướng dẫn dành cho nhà phát triển về Điểm neo trên đám mây cho iOS để khám phá mã ứng dụng mẫu và tìm hiểu thêm về cách sử dụng Điểm neo trên đám mây trong ứng dụng của riêng bạn.
Xem thông tin chi tiết trong Tài liệu tham khảo API ARCore cho iOS.