ARCore Cloud Anchor API veya ARCore Cloud Anchor hizmeti, iOS uygulamalarınız için bulut bağlantısı özellikleri sunar. Böylece hem iOS hem Android cihaz kullanıcılarının AR deneyimlerini paylaşmasını sağlar.
Bu kılavuzda, aşağıdakileri nasıl yapacağınız gösterilmektedir:
- Geliştirme ortamınızı Cloud Anchor ile çalışacak şekilde ayarlayın
- Örnek bir uygulamada anchor'ları barındırmayı ve çözümlemeyi deneyin
Ön koşullar
- Xcode 13.0 veya sonraki bir sürüm
- Cocoapods kullanıyorsanız Cocoapods 1.4.0 veya üzeri
- iOS 12.0 veya sonraki sürümleri çalıştıran ARKit uyumlu bir Apple cihaz (iOS 12.0 veya sonraki sürümlerin dağıtım hedefi gereklidir)
Cloud Anchor'ları Kullanma
Aşağıdaki adımlarda, ARCore Bulut Bağlantılarını destekleyen bir uygulama yapılandırmak ve oluşturmak için gereken kritik görevleri göstermek amacıyla Cloud Anchor örnek uygulaması kullanılır.
Cloud Anchors örnek uygulamasını edinin
Örnek uygulama kodunu almak üzere iOS için ARCore SDK'sını GitHub'dan klonlayın veya indirin.
Bir Terminal veya Finder penceresi açın ve SDK'yı klonladığınız veya indirdiğiniz klasöre gidin.
Örnek uygulama kodunu şurada bulabilirsiniz:
/arcore-ios-sdk-master/Examples/CloudAnchorExample
.Kalıcı Cloud Anchor örnek uygulama kodu
/arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
içindedir.
Oturum kurulumu
Örnek uygulama, oturumu ayarlamanın bir parçası olarak aşağıdaki önemli görevleri gerçekleştirir:
GARSession
oluşturmaARSession
oluşturma ve çalıştırmaARSessionDelegate
ayarlama.session:didUpdateFrame:
yöntemindeGARSession
öğesineARFrame
iletin.
Cloud Anchor Kimliği paylaşımını ayarlama
Cloud Anchor örnek uygulaması, Cloud Anchor kimliklerini cihazlar arasında paylaşmak için Firebase'i kullanır. Kendi uygulamalarınızda farklı bir çözüm kullanabilirsiniz.
Örnek uygulamada Firebase veritabanını kurmak için:
- Uygulamanıza Firebase'i ekleme ile ilgili Firebase talimatlarını uygulayın.
- Firebase'i uygulamanıza eklerken oluşturulan
GoogleService-Info.plist
dosyasını indirin. - Örnek için Firebase Storage'ı etkinleştirin:
- Firebase konsoluna gidin ve örnek uygulama için oluşturduğunuz projeyi seçin.
- Database panelini seçin.
- Realtime Database seçeneğinde Get Started simgesini tıklayın.
- Security rules for Realtime Database menüsü açılır.
- Örneği çalıştırmak amacıyla Start in test mode öğesini seçin.
- Yayınlamayı planladığınız bir uygulama için Firebase kullanıyorsanız daha kısıtlayıcı güvenlik kuralları kullanmanız gerektiğini unutmayın.
- Xcode'da,
GoogleService-Info.plist
dosyasını uygulamanıza,Info.plist
öğesinin yanına ekleyin.
ARCore API'yi ayarlama
Cloud Anchor'ları kullanmak için önce uygulamanız için ARCore API'yi kurmanız gerekir.
Kapsül güncellemesini çalıştır
CloudAnchorExample uygulaması, ihtiyacınız olan ARCore SDK ve iOS sürümleriyle önceden yapılandırılmış bir Podfile
ile birlikte gelir. Bu bağımlılıkları yüklemek için:
- Bir Terminal penceresi açın ve Xcode projesinin bulunduğu klasörden
pod update
komutunu çalıştırın.
Bu işlemden sonra uygulamayı derlemek ve çalıştırmak için daha sonra kullanacağınız bir.xcworkspace
dosyası oluşturulur.
Podfile
'yi kendi uygulamalarınızda yapılandırmayla ilgili ayrıntılar için ARCore SDK'sını uygulamanıza ekleme konusuna bakın.
Xcode'da projenin
.xcworkspace
dosyasını açın.Derleme hatalarını önlemek için
.xcodeproj
dosyasından değil.xcworkspace
dosyasından derleme yaptığınızdan emin olun.
Uygulama paketi kimliğini değiştirme
Xcode'da uygulamayı ekibinizle imzalayabilmek için paket kimliğini değiştirin.
Uygulamayı derleme ve çalıştırma
Cihazınızı bağlayıp Xcode'da uygulamayı başlatın.
(İsteğe bağlı) Örnek uygulamayı oluşturup çalıştırıyorsanız Cloud Anchor'ları barındırmak ve çözmek için uygulamayı kullanmayla ilgili ayrıntılar için aşağıdaki bölüme bakın.
Örnek uygulamayı deneyin
Cihazınızda başlatmak için
.xcworkspace
dosyasından örnek uygulamayı derleyip çalıştırın.İstenirse uygulamaya kamera izni verin. ARKit, kameranızın önündeki uçakları algılamaya başlar.
Barındırma moduna girmek için HOST seçeneğine dokunun. Barındırılan sabit reklamları paylaşmak için bir oda kodu oluşturulur ve ekranınızda gösterilir.
Bulutta çapa barındırmaya başlamak için bir uçağa dokunun.
- Uygulama, uçağa bir Andy Android nesnesi yerleştirir ve bu nesneye bir çapa ekler.
- ARCore API bulut uç noktasına bir ana makine isteği gönderilir. Ana makine isteği, sabitin yanındaki görsel özelliklere göre konumunu temsil eden veriler içerir.
- Barındırıldıktan sonra, bu alandaki bulut çapalarını çözümlemek için kullanılan bir kimlik alır.
RESOLVE seçeneğine dokunup oda kodu girin. Bu oda için, aynı veya farklı bir cihaz kullanarak önceden barındırılan Cloud Anchor'larına erişebilirsiniz.
- ARCore API bulut uç noktasına bir çözüm isteği gönderilir.
- Çözümleme isteği bir bulut anchor kimliği içerir. Kimlik, barındırılan bir sabitle eşleşirse ve yerelleştirme başarılı olursa sunucu, sabitin dönüşümlerini yerel koordinatlarınızda döndürür.
- Örnek uygulama, sabiti sahnenize eklemek ve ona ekli sanal nesneleri oluşturmak için dönüştürme işlemini kullanır.
ARCore SDK'sını uygulamalarınıza ekleyin
Kendi uygulamalarınızda Podfile
öğenizi ARCore SDK'sını ve desteklenen iOS sürümünü içerecek şekilde güncellemeniz gerekir. Bunun için:
Projenizin
Podfile
öğesine aşağıdakiplatform
vepod
değerlerini ekleyin:platform :ios, '11.0' pod 'ARCore/CloudAnchors', '~> 1.41.0'
- Bir Terminal penceresi açın ve Xcode projenizin bulunduğu klasörden
pod update
komutunu çalıştırın.
Bu işlem, uygulamayı derlemek ve çalıştırmak için kullanacağınız bir.xcworkspace
dosyası oluşturur.
Kalıcı bulut çapaları
Cloud Anchor'ı kalıcı olarak barındırma bölümünde açıklandığı gibi, bulut çapasına 365 güne kadar geçerlilik süresi verebilirsiniz. Kalıcı bulut çapalarını kullanmayla ilgili örnek kod, GitHub'dan iOS için ARCore SDK'sının /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
dizininde mevcuttur.
Sonraki adımlar
Örnek uygulama kodunu keşfetmek ve kendi uygulamalarınızda Cloud Anchor ile çalışma hakkında daha fazla bilgi edinmek için iOS için Cloud Anchors Geliştirici Kılavuzu'na bakın.
Ayrıntıları ARCore iOS API Reference (ARCore iOS API Referansı) bölümünde inceleyin.