Unity için ARCore Geospatial Creator, Google Haritalar verilerini yeni bir 3D karo biçiminde göstererek Unity Editor'da Coğrafi içeriği önizlemenizi sağlar. Bu, uygulamanızı oluştururken içeriğin gerçek dünyada nereye yerleştirileceğini görselleştirmenize yardımcı olur.
Geospatial Creator, ARCore Extensions for AR Foundation'ın bir parçası olarak kullanıma sunulmuştur. Bu hızlı başlangıç kılavuzunda, coğrafi mekansal AR içeriğini ARCore Geospatial Sample uygulamasına eklemek için Unity'de Geospatial Creator'ı nasıl kullanacağınız gösterilmektedir.
Coğrafi Örnek yerine kullanmak istediğiniz mevcut bir uygulamanız varsa öncelikle Unity için Coğrafi Geliştirici kılavuzumuzdaki adımları uygulamanız gerekir. Uygulamanız Geospatial API kullanımı için yapılandırıldıktan sonra aşağıdaki Gerekli Bağımlılıkları Ekleme adımına atlayın ve oradan devam edin.
Ön koşullar
Unity ortamınızı AR deneyimleri oluşturacak şekilde yapılandırmak için "Getting started with ARCore Extensions for AR Foundation" adresindeki sayfaya göz atın.
ARCore Extensions, Unity'nin önceki sürümlerini desteklerken Geospatial Creator için Unity 2021.3 veya daha yeni bir sürüm gerekir.
API Yetkilendirmesi
ARCore Geospatial API'yi ve Google Map Tiles API'yi kullanmak için API erişimini ayarlamanız gerekir.
Google Harita Parçaları API'sı
Map Tiles API, desteklenen konumları 3D ve fotogerçekçi şekilde gösterir. AR sahnenizin çevresindeki alanı önizlemek için Unity Editor'da bu karoları kullanacağız.
API'yi etkinleştirmek ve Harita Döşemeleri hakkında daha fazla bilgi edinmek için Harita Karoları API'si sayfasına bakın.
ARCore Geospatial API'sı
ARCore Geospatial API, Coğrafi Sabitleyiciler oluşturmak ve bunlarla etkileşimde bulunmak için çalışma zamanında uygulamanız tarafından kullanılır.
Geospatial API'leri etkinleştirmek için uygulamanızda ARCore API'yi kurun. Anahtarsız (önerilen) veya API Anahtarı yetkilendirme yöntemlerini kullanabilirsiniz.
Geospatial Sample uygulamasını genişletin
Bu kılavuzda, ARCore Geospatial Sample uygulamasına coğrafi içerik eklemek için Geospatial Creator'ı nasıl kullanacağınızı göstereceğiz.
Coğrafi Örneği Yapılandırma
Öncelikle ARCore Geospatial Sample uygulamasını tanıyın. Yeni bir Unity projesinde Unity Paket Yöneticisi'ni açın ve ARCore Extensions paketini seçin. Paket Yöneticisi ayrıntı panelinde Örnekler'i genişletin ve Coğrafi Örneği, Unity projenize aktarın.
Uygulamayı çalıştırmadan önce projenizde ARCore'u ve Geospatial işlevselliğini etkinleştirmeniz gerekir. Düzenle > Proje Ayarları... > XR Eklenti Yönetimi'ni tıklayın. Android için ARCore eklenti sağlayıcısını ve/veya iOS için ARKit eklenti sağlayıcısını etkinleştirmek üzere uygun kutuları işaretleyin.
Ardından, Düzenle > Proje Ayarları... > XR Eklenti Yönetimi'ne giderek ARCore Uzantıları panelini açın. "Geospatial"ın işaretlendiğinden emin olun (henüz Geospatial Creator'ı etkinleştirmeniz gerekmez) ve API kimlik bilgilerinizi girin. Daha fazla ayrıntı için Android ve iOS için "Geospatial Unity API'yi Etkinleştirme" belgelerine bakın.
ARCore'u kullanan tüm Unity uygulamaları için gereken, platforma özgü birkaç Oynatıcı ayarı daha vardır. Gerekli değişiklikler için dokümanlarımızın Oynatıcı Ayarlarını Yapılandır bölümüne bakın.
Bu noktada, sahnenizde Coğrafi Örnek'i çalıştırmak için gerekli olanların dışında herhangi bir oyun nesnesi yoktur. Bu, uygulamayı derlemek ve çalıştırmak için iyi bir zamandır. Doğru şekilde yapılandırılırsa uygulama, çalışma zamanında cihazınızın kamera görünümünü gösterir. Siz hareket ettikçe, ekranın üst kısmında görüntülenen coğrafi doğruluk artmaya başlar. Ekrana dokunarak, siz etrafta gezinirken orijinal konumlarında kalmaya devam edecek Coğrafi Mekansal Sabitler oluşturursunuz.
Sonraki videoda, gelişmiş AR içeriklerini Unity Editor üzerinden oluşturmak ve görselleştirmek için Geospatial Creator'ın nasıl kullanılacağını göstereceğiz. Bu içerik, uygulamanızda dünyanın belirli enlem / boylam konumlarında görünür.
Gerekli bağımlılıkları ekleyin
Geospatial Creator, Unity Düzenleyici'nin Sahne penceresinde Google Harita Kutuları'nı oluşturmak için Cesium adlı üçüncü taraf bir Unity paketinden yararlanır. Geospatial Creator özelliklerini etkinleştirmeden önce projenize Cesium paketini ekleyelim.
Cesium'un GitHub sayfasından Unity paketi için Cesium'un en son sürümünü yüklemenizi öneririz:
- GitHub Sürümleri sayfasından, Unity için önceden derlenmiş Cesium
.tgz
ürününün en son sürümünü indirin. Unity için Cesium paketinin önerilen mevcut sürümü 1.1.0'dır. - Unity'nin "Pencere" menüsünü tıklayıp "Paket Yöneticisi"ni seçerek Unity Paket Yöneticisi'ni açın.
- "+" simgesini tıklayın ve "Tarball'dan paket ekle"yi seçin.
- 1. adımda indirilen Unity .tgz için Cesium dosyasını seçin.
- Text Mesh Pro gibi ek bağımlılıkları yüklemeniz istenebilir.
Geospatial Creator'ı etkinleştir
Artık Geospatial Creator'ı etkinleştirmeye hazırsınız:
- Derleme Ayarları iletişim kutusunda, seçtiğiniz platformun "Android" veya "iOS" olduğundan emin olun. Geospatial Creator özellikleri, şu anda diğer platformlarda kullanılamamaktadır.
- Proje Ayarları > XR Eklenti Yönetimi > ARCore Uzantıları'na gidin.
- ARCore Android ve/veya iOS API anahtarlarınızı daha önceki bir adımda ayarlamadıysanız şimdi bunu yaptığınızdan emin olun.
- Hem "Geospatial" hem de "Geospatial Creator" açma/kapatma düğmesini etkinleştirin. Geospatial Creator açma/kapatma düğmesi tıklandığında, projenizin Geospatial Creator ile uyumlu olduğunu onaylamak için modal olmayan bir sihirbaz görüntülenir.
- Sihirbazda "Son"u tıklayın.
Sihirbazı tamamladıktan sonra Unity, komut dosyalarınızdan oluşan bir derlemeyi tetikler. Devam etmeden önce yeniden derlemenin tamamlanmasını bekleyin. (Seçtiğiniz platform "Android" veya "iOS" değilse şimdi bunlardan birine geçin.)
Harita Parçalarıyla Coğrafi Bir Yaratıcı Kaynağı Ekleyin
Sahneniz için tam olarak bir "Geospatial Creator Origin" nesnesi gerekir. Bu nesne, gerçek dünyadaki enlem, boylam ve rakım değerlerini Unity oyun koordinatlarına dönüştürmek için referans noktası olarak kullanılır.
Sahnenize Coğrafi İçerik Üretici Kaynağı eklemek için Oyun Nesnesi > XR > Coğrafi İçerik Üretici Kaynağı'nı seçin. Yeni oluşturulan nesne için belirli bir enlem, boylam ve rakımı kalkışın oyun koordinatlarındaki konumuna bağlayan bir coğrafi referans gerekir. Coğrafi İçerik Oluşturucu Kaynağınızın İnceleyici bölmesinden Sezyum Coğrafi Referans Bileşeni Ekle düğmesini tıklayarak bir coğrafi referans ekleyin.
Sesium Georeference, AR nesnelerinizin referans noktası olmasının yanı sıra sahneye bir Sezyum 3D Karo Kümesi nesnesi de ekler. Bu nesne, Editör'ün Sahne Görünümü'nde Google Harita Karoları oluşturur ve Artırılmış gerçeklik içeriğinizin dünyanın tam olarak neresinde görüneceğini görselleştirmenize olanak tanır. Geospatial Creator Origin'in denetçisinde, daha önce ayarladığınız Map Tiles API anahtarını eklemeniz için bir alan bulunur. Bu anahtarı ayarladıktan sonra, harita parçalarının Sahne görünümünde yüklendiğini görürsünüz.
Şimdi enlem, boylam ve yükseklik alanlarını, uygulamanızda AR içeriğinin görünmesini istediğiniz yere yakın olacak şekilde değiştirin.
Düzenleyici'deki Sahne Görünümü'nün artık başlangıç noktası için belirttiğiniz enlem ve boylamdaki harita parçalarını göstermesi gerekir. Çalışma zamanında, uygulamanızın AR Kamera'yı kullanacağını varsayıyoruz. Bu nedenle, Geospatial Creator, Cesium 3D Harita Döşeme nesnesini "EditorOnly" etiketiyle zaten yapılandırmıştır. Bu nedenle, oyununuzdaki kartlar çalışma zamanında indirilmez veya oluşturulmaz. Bu, Cesium3DTileset nesnesinin inceleyicisinden değiştirilebilir. Cesium'un Georeference ve 3D Tileset GameObjects özellikleri hakkında daha fazla bilgi edinmek için Unity için Cesium dokümanlarına bakın.
Coğrafi İçerik Oluşturucu için İşaretleme ekleme ve yerleştirme
Artık sahnenize artırılmış gerçeklik (AR) içeriği yerleştirmeye hazırsınız. Sahne hiyerarşinize bir bağlantı eklemek için GameObject > XR > Geospatial Creator Anchor'ı tıklayın. Anchor'ın inceleyicisinden tam enlem, boylam ve yükseklik belirtebilirsiniz. Nesnenin dönüşümü hemen sahnenizde doğru konuma güncellenir ve nesnenin dünyanın tam olarak nerede görüneceğini görebilirsiniz.
Çapa yerinin enlem ve boylamını belirlerken yakın bir yer seçin. Böylece çalışma zamanında doğru yerde olduğunu doğrulayabilirsiniz. Coğrafi İçerik Oluşturucu için Bağlayıcının rakımını ayarlarken üç seçeneğiniz vardır:
- Arazi, çapayı belirtilen enlem ve boylamda yer seviyesine yerleştirir. Zemin seviyesi, çalışma zamanında Görsel Konumlandırma Sistemi tarafından belirlenir. ARCore'un Geospatial API'lerini kullanmaya yeni başladıysanız "Arazi" iyi bir tercihtir. Çünkü çapa, doğrudan yerde yüksek bir dikey doğrulukla çözümlenir. "Yükseklik Göreliliği" alanı, çapası zemin seviyesinin üzerine veya altına metre cinsinden sabit bir miktar kadar konumlandırmanıza olanak tanır. Örneğin, "1,0" ofsetinin belirtilmesi, çapanın arazinin bir metre üzerinde "süzülmesine" neden olur.
- Çapa, çapayı belirtilen enlem ve boylamda herhangi bir yapının tepesine göre yerleştirir. Arazi çapası gibi, "Yükseklik Ofseti" alanı da çapayı çatı konumuna göre metre cinsinden yukarı veya aşağı hareket ettirmenizi sağlar.
- WGS84, çapayı WGS84 koordinat sistemine dayalı olarak metre cinsinden belirli bir mutlak yüksekliğe yerleştirir. WSG84'te "0" yüksekliği ortalama deniz seviyesini belirtmeyebilir ve GPS'in rakımıyla eşleşmeyebileceğinden nesnenin bu şekilde yerleştirilmesi biraz deneme yanılma gerektirebilir. Ayrıca, oluşturulan 3D parçaların enlem ve boylamı son derece doğru olmakla birlikte, referans olarak 3D parçaları kullanarak nesnenin yer seviyesine yerleştirilmeye çalışılması birkaç metrelik yükseklik hatasına neden olabilir.
ARCore Geospatial Anchor'ların farklı türleri hakkında daha fazla bilgi edinmek için Geospatial Developer Guide'a (Coğrafi Mekansal Geliştirici Kılavuzu) bakın.
Hem arazi hem de çatı çapalarında WGS84 Rakımı alanı bulunur. Bu değer yalnızca Düzenleyici modunda, Sahne Görünümü'nde nesnenin yüksekliğini ayarlamak için kullanılır. Arazi ve çatı yükseklikleri yalnızca çalışma zamanında belirlendiği için WGS84 Rakımı alanı, uygulamayı geliştirirken çapayı belirli bir yükseklikte görselleştirmenize olanak tanır. Arazi ve çatı çapaları için çalışma zamanında WGS84 Rakımı alanı dikkate alınmaz.
Bağlantıya Geometri ekle
Uygulamayı şimdi oluşturup çalıştırırsanız AR özellikli uygulamanızda çapa görmezsiniz. Bunun nedeni, uygulamaya ekli bir geometri olmamasıdır. Sabitlemeye basit bir 3D temel öğe ekleyelim: Sahne hiyerarşisinde AR Coğrafi-uzamsal İçerik Oluşturucu Sabitleme nesnenizi sağ tıklayın. İçerik menüsünden 3D Nesne > Küp'ü seçin. Çapanızın alt öğesi olarak sahne görünümünüzde gri bir küp görürsünüz. Düzenleyici'de nesnenin konumunu veya dönüşünü taşımaya karar verirseniz alt Küp öğesi yerine kök Sabit nesnesini taşımanızı öneririz. Bu, enlem / boylamdan oyun koordinatlarına çeviri sırasında yapılan hataların azaltılmasına yardımcı olur.
Elbette çapa simgesine daha karmaşık geometri ve rastgele bileşenler ile alt öğeler de ekleyebilirsiniz.
Uygulamanızı derleyip çalıştırma
Çapanızı gerçek dünyada görme zamanı geldi. Uygulamanızı oluşturmayı ve çalıştırmayı deneyin, ardından küpü görmeyi beklediğiniz yere gidin. Orada mı? Tebrikler, Geospatial Creator ile daha karmaşık AR deneyimleri oluşturmaya hazırsınız.
Herhangi bir sorunla karşılaşırsanız Sorun Giderme Kılavuzu'na bakın.
Şimdi farklı geometrilere sahip ilave AR Coğrafi-uzamsal İçerik Oluşturucu Sabitlemeleri eklemenin tam zamanı. Birden çok çatı ve arazi çapası ve ofsetleriyle denemeler yapmayı deneyin. Nesnelerle etkileşimleri canlandırmak veya etkinleştirmek için komut dosyaları ekleyin.
Coğrafi İçerik Oluşturucu Anchor'larını ve ARGeospatialAnchor
sınıfını anlama
Karmaşık ve etkileşimli AR deneyimleri oluştururken Geospatial Creator Anchor'ları ile ARCore'un ARGeospatialAnchor
C# sınıfı arasındaki ilişkiyi anlamak faydalıdır:
ARGeospatialAnchor
yalnızca çalışma zamanında ARAnchorManager
üzerindeki işlevlerden biri çağrılarak oluşturulabilir ve yalnızca AR oturumu kararlı hale geldikten sonra oluşturulabilir. Coğrafi İçerik Oluşturucu için Sabitleyici, sahnenizde bulunan ve AR oturumunun ARGeospatialAnchor
nesnelerini çözümlemeye hazır olmasını bekleyen bir yer tutucu olarak düşünülebilir.
Oturum hazır olduğunda, yer tutucu ARGeospatialAnchor
öğesini oluşturmak ve çözmek için otomatik olarak ARAnchorManager
öğesini çağırır.
Çalışma zamanı bağlantısı çözümlendikten hemen sonra, sahne hiyerarşinizdeki Coğrafi İçerik Oluşturucu Sabitlemesi, kendisini yeni GameObject'e alt öğe olarak ekler.
Bu, Coğrafi İçerik Üretici Bağlantısının tüm bileşenlerinin veya alt öğelerinin yeni ARGeospatialAnchor
GameObject'in alt bileşenleri ya da alt bileşenleri olacağı anlamına gelir. Örneğin, Geospatial Creator Anchor'a ekli bir temel geometri öğesinin transform
öğesi, ARGeospatialAnchor
öğesinin transform
öğesini devralır ve bu nedenle, çalışma zamanı AR oturumunda beklenen konuma yerleştirilir.
Çalışma zamanında belirli ARGeospatialAnchor
GameObjects tanımlamanız gerekiyorsa name
özelliği Geospatial Creator kullanılarak oluşturulan sabitle eşleşen nesneleri sahnede arayabilirsiniz. AR oturumu başlatılırsa bu nesnenin parent
değeri karşılık gelen ARGeospatialAnchor
nesnesi olur.
Sorun giderme
Çapa neden hareket ediyor?
Özellikle uygulama ilk kez başlatıldığında, çapanın yavaşça "kayıyor" gibi göründüğünü, hatta aniden birkaç metre atladığını fark edebilirsiniz. Bu durum, VPS oturumu kameranın tam konumunu belirlemeye ve hassaslaştırmaya devam ederken gerçekleşir. Birden fazla karede yatay ve dikey doğruluk iyileştiğinde çapa daha doğru bir konumda yeniden çizilerek hareket illüzyonu yaratır. Konum doğruluğu belirli bir eşiğe ulaşana kadar nesneyi farklı bir şekilde (veya hiç) oluşturmak isteyebilirsiniz. Bunun için ARCoreEarthManager.CameraGeospatialPose
özelliğini sorgulayarak geçerli kare güncellemesinin doğruluğunu belirleyebilirsiniz.
Yer işaretim neden yanlış yükseklikte görünüyor?
Geospatial Creator Anchor'ları için "Manuel" rakım türü kullanılırken bağlantının rakımı WGS84'e göre (metre cinsinden) ayarlanır. Belirli bir konumda, Google'ın Görsel Konumlandırma Sistemi (VPS) tarafından bildirilen, harita parçalarında gösterilen görünür yer seviyesi ile gerçek zemin seviyesi arasında birkaç metrelik fark olabilir. Bir Coğrafi Sabitleyici, çalışma zamanında yanlış konumlandırılmış gibi görünüyorsa örnek uygulamadaki hata ayıklama yer paylaşımını kullanarak VPS yüksekliğini bizzat doğrulamanızı öneririz. Daha sonra, Unity Düzenleyici'de rakımı, bu konumdaki bilinen VPS yüksekliğiyle eşleşecek şekilde değiştirebilirsiniz.
Harita desenleri, Editörün Sahne Görünümü'nde düzgün bir şekilde oluşturulmuyor
Cesium3DTileset
, karolar yüklüyor gibi görünmesine rağmen sahne görünümünüzde düz macenta renkle oluşturuluyorsa Unity'nin Gölgelendirici Grafiği paketini projenize ekleyin. Bu paket Cesium için gereklidir ancak Unity'nin yerleşik oluşturucusunu kullanan projeler varsayılan olarak bu paketi içermez.
Gölgelendirici Grafiği eklemek için Unity Paket Yöneticisi'ni (Pencere > Paket Yöneticisi) açın. Paket Yöneticisi penceresinin üst kısmındaki açılır menüden "Packages: Unity Registry"yi seçerek Unity Paket Kayıt Defteri'nde bulunan paketlere göz attığınızdan emin olun. com.unity.shadergraph
paketini arayın ve en son sürümü yükleyin. Paket yüklendikten sonra, 3D karolar
yeniden yüklenmeli ve Sahne Görünümü'nde düzgün bir şekilde oluşturulmalıdır.
Uygulama, çalışma zamanında kamera görünümü yerine siyah ekran görüntülüyor
Unity'nin Evrensel Oluşturma Ardışık Düzeni (URP), AR Kamera için varsayılan olarak yapılandırılmamıştır. Çalışma zamanında kamera çıkışı yerine siyah bir ekran görüyorsanız sahnenizdeki her URP Oluşturucu'ya AR Background Renderer Feature
eklemeniz gerekir.
Özelliği eklemek için projenizde "oluşturucu" ifadesini arayın. Her bir URP Oluşturucu nesnesi için Inspector'da "Oluşturucu Özelliği Ekle" düğmesini tıklayın ve AR Arka Plan Oluşturucu'yu ekleyin.
Kaynaktan uzağa yerleştirilen Bağlantılar neden yanlış yerleştirilmiş gibi görünüyor?
WGS84 koordinatlarından Unity oyun koordinatlarına dönüştürme işleminde, kayan nokta aritmetik hassasiyeti nedeniyle hata meydana gelebilir. Bu işlem, başlangıç noktanızın AR çapalarınızın yakınında olması sağlanarak azaltılabilir. 20 km'den uzun mesafeler hatalara neden olabilir. Artırılmış gerçeklik deneyiminiz uzun mesafeleri kapsıyorsa her sahnede benzersiz bir bağlantıyla birden fazla sahne kullanmanızı öneririz.