Unity'de Geospatial Creator'ı kullanmaya başlayın

Unity için ARCore Geospatial Creator, Google Haritalar verilerini yeni bir 3D döşeme biçiminde göstererek Unity Editor'da Geospatial içeriğini önizlemenize olanak tanır. 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 kapsamında kullanılabilir. Bu hızlı başlangıç kılavuzunda, ARCore Geospatial Sample uygulamasına coğrafi AR içeriği eklemek için Unity'deki Geospatial Creator'ı nasıl kullanacağınız gösterilmektedir.

Geospatial Sample yerine kullanmak istediğiniz mevcut bir uygulamanız varsa öncelikle Unity için Geospatial Geliştirici Kılavuzu'muzdaki 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 geçin ve oradan devam edin.

Ön koşullar

AR deneyimleri oluşturmak için Unity ortamınızı yapılandırmak üzere "AR Foundation için ARCore Uzantıları'nı kullanmaya başlama" başlıklı makaledeki adımları uygulayın.

ARCore Uzantıları, Unity'nin eski sürümlerini desteklese de Geospatial Creator için Unity 2021.3 veya daha yeni bir sürüm gerekir.

API Yetkilendirme

ARCore Geospatial API ve Google Harita Döşemeleri API'sini kullanmak için API erişimini ayarlamanız gerekir.

Google Map Tiles API

Map Tiles API, desteklenen konumların 3 boyutlu ve gerçekçi fotoğraf görünümünü sunar. Bu döşemeleri, Unity Editor'da AR sahnenizin etrafındaki alanı önizlemek için kullanırız.

API'yi etkinleştirmek ve Map Tiles hakkında daha fazla bilgi edinmek için Map Tiles API sayfasını inceleyin.

ARCore Geospatial API

ARCore Geospatial API, uygulamanız tarafından çalışma zamanında Coğrafi Sabitleyiciler oluşturmak ve bunlarla etkileşimde bulunmak için kullanılır.

Geospatial API'leri etkinleştirmek için uygulamanızda ARCore API'yi ayarlayın. Anahtarsız (önerilen) veya API anahtarı yetkilendirme yöntemlerini kullanabilirsiniz.

Coğrafi örnek uygulamasını genişletme

Bu kılavuzda, Geospatial Creator'ı kullanarak ARCore Geospatial Sample uygulamasına coğrafi içerik ekleme adımları gösterilecektir.

Coğrafi örnek yapılandırma

Öncelikle ARCore Geospatial Sample uygulaması hakkında bilgi edinin. Yeni bir Unity projesinde Unity Package Manager'ı açın ve ARCore Extensions paketini seçin. Paket Yöneticisi ayrıntı panelinde Örnekler'i genişletin ve Geospatial Sample'ı Unity projenize aktarın.

Uygulamayı çalıştırmadan önce projenizde ARCore ve Geospatial işlevini etkinleştirmeniz gerekir. Düzenle > Proje Ayarları... > XR Plug-in Management (XR Eklenti Yönetimi) seçeneğini 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 Plug-in Management'a gidin ve ARCore Extensions (ARCore Uzantıları) panelini açın. "Geospatial"ın işaretli olduğundan emin olun (Geospatial Creator'ı henüz etkinleştirmeniz gerekmez) ve API kimlik bilgilerinizi girin. Daha fazla bilgi için Android ve iOS'e yönelik "Geospatial Unity API'yi etkinleştirme" dokümanlarına bakın.

ARCore kullanan tüm Unity uygulamaları için gerekli olan birkaç platforma özel Player ayarı daha vardır. Gerekli değişiklikler için dokümanlarımızdaki Oynatıcı Ayarlarını Yapılandırma bölümüne bakın.

Bu noktada, sahnenizde Geospatial Sample'ın çalıştırılması için gerekenler dışında oyun nesnesi yoktur. Bu aşamada uygulamayı oluşturup çalıştırmanız önerilir. Uygulama doğru şekilde yapılandırılırsa çalışma zamanında cihazınızın kamera görünümünü gösterir. Hareket ettikçe ekranın üst kısmında gösterilen coğrafi doğruluk iyileşmeye başlar. Ekrana dokunarak, hareket ederken orijinal konumlarında kalacak olan coğrafi uzamsal bağlantılar oluşturursunuz.

Ardından, Unity Editor'dan gelişmiş AR içeriği oluşturmak ve görselleştirmek için Geospatial Creator'ı nasıl kullanacağınızı göstereceğiz. Bu içerik, uygulamanızda dünyanın belirli enlem / boylam konumlarında gösterilir.

Gerekli bağımlılıkları ekleyin

Geospatial Creator, Unity Editor'ın Sahne penceresinde Google Harita Döşemelerini oluşturmak için Cesium adlı üçüncü taraf Unity paketini kullanır. Coğrafi Veri Oluşturucu özelliklerini etkinleştirmeden önce projenize Cesium paketini ekleyelim.

Cesium'un GitHub sayfasından Cesium for Unity paketinin en son sürümünü yüklemenizi öneririz:

  1. Unity için Cesium'un önceden derlenmiş .tgz sürümünün en son versiyonunu GitHub Releases sayfasından indirin. Cesium for Unity paketinin mevcut önerilen sürümü 1.1.0'dır.
  2. Unity'nin "Window" (Pencere) menüsünü tıklayıp "Package Manager"ı (Paket Yöneticisi) seçerek Unity Paket Yöneticisi'ni açın.
  3. "+" simgesini tıklayın ve "Tarball'dan paket ekle"yi seçin.
  4. 1. adımda indirilen Cesium for Unity .tgz dosyasını seçin.
  5. Text Mesh Pro gibi ek bağımlılıkları yüklemeniz istenebilir.

Unity Paket Yöneticisi ile .tgz paketi ekleme

Geospatial Creator'ı etkinleştirme

Artık Geospatial Creator'ı etkinleştirmeye hazırsınız:

  1. 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.
  2. Project Settings (Proje Ayarları) > XR Plug-in Management (XR Eklenti Yönetimi) > ARCore Extensions'a (ARCore Uzantıları) gidin.
  3. ARCore Android ve/veya iOS API anahtarlarınızı önceki bir adımda ayarlamadıysanız şimdi ayarladığınızdan emin olun.
  4. Hem "Geospatial" hem de "Geospatial Creator" açma/kapatma düğmelerini etkinleştirin. Geospatial Creator açma/kapatma düğmesini tıkladıktan sonra, projenizin Geospatial Creator ile uyumlu olduğunu onaylamak için modsuz bir sihirbaz gösterilir.
  5. Sihirbazda "Sonlandır"ı tıklayın.

Sihirbazı tamamladıktan sonra Unity, komut dosyalarınızın derlenmesini tetikler. Devam etmeden önce yeniden derlemenin tamamlanmasını bekleyin. (Seçtiğiniz platform "Android" veya "iOS" değilse şimdi bu platformlardan birine geçin.)

Harita döşemeleriyle Geospatial Creator Origin ekleme

Sahnenizde tam olarak bir "Geospatial Creator Origin" nesnesi bulunmalıdır. Bu nesne, gerçek dünyadaki enlem, boylam ve yükseklik değerlerini Unity oyun koordinatlarına dönüştürmek için referans noktası olarak kullanılır.

Sahnenize Geospatial Creator Origin eklemek için Game Object > XR > Geospatial Creator Origin'i seçin. Yeni oluşturulan nesne, belirli bir enlem, boylam ve yüksekliği kaynağın oyun koordinatlarındaki konumuna bağlayan bir coğrafi referans gerektirir. Geospatial Creator Origin'in Inspector bölmesinde, Add Cesium Georeference Component (Cesium Coğrafi Referans Bileşeni Ekle) düğmesini tıklayarak coğrafi referans ekleyin.

Geospatial Creator Origin GameObject'i ekleyin

Cesium Georeference, artırılmış gerçeklik nesneleriniz için referans noktası olmasının yanı sıra sahneye bir Cesium 3D Tileset nesnesi de ekler. Bu nesne, Google Harita Döşemelerini Düzenleyici'nin Sahne Görünümü'nde oluşturarak AR içeriğinizin dünyada tam olarak nerede görüneceğini görselleştirmenize olanak tanır. Geospatial Creator Origin's Inspector'da, daha önce ayarladığınız Harita Döşemeleri API anahtarını ekleyebileceğiniz bir alan bulunur. Bu anahtarı ayarladıktan sonra, harita döşemelerinin Sahne görünümünde yüklendiğini görmeniz gerekir.

Şimdi enlem, boylam ve yükseklik alanlarını, AR içeriğinin uygulamanızda görünmesini istediğiniz yere yakın olacak şekilde değiştirin.

Düzenleyici'deki Sahne Görünümü artık başlangıcınızın belirtilen enlem ve boylamındaki harita döşemelerini göstermelidir. Çalışma zamanında uygulamanızın AR kamerasını kullanacağını varsayıyoruz. Bu nedenle, Geospatial Creator, Cesium 3D Map Tileset nesnesini "EditorOnly" etiketiyle yapılandırmıştır. Bu nedenle, döşemeler oyununuzda ç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 Cesium for Unity belgelerine bakın.

Geospatial Creator Anchor ekleme ve yerleştirme

Artık sahnenize 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. Sabitleme noktasının inceleyicisinden tam enlem, boylam ve yükseklik belirtebilirsiniz. Nesnenin dönüşümü, sahnenizde hemen doğru konuma güncellenir ve nesnenin dünyada tam olarak nerede görüneceğini görebilirsiniz.

Geospatial Creator Anchor'ı ekleme

Sabitleme noktasının enlemini ve boylamını hassas bir şekilde ayarlarken yakındaki bir yeri seçin. Böylece, çalışma zamanında doğru yerde olduğunu doğrulayabilirsiniz. Bir Coğrafi İçerik Üretici Sabitleme Noktası'nın yüksekliğini ayarlarken üç seçeneğiniz vardır:

  • Arazi, enlemi ve boylamı belirtilen noktada, zeminde bir sabitleme noktası oluşturur. Zemin seviyesi, çalışma zamanında Görsel Konumlandırma Sistemi tarafından belirlenir. ARCore'un Geospatial API'lerini yeni kullanmaya başladıysanız "Arazi" iyi bir seçimdir. Çünkü sabitleme, yüksek düzeyde dikey doğrulukla doğrudan zeminde çözülür. "Yükseklik Ofseti" alanı, sabit bir miktarda (metre cinsinden) olacak şekilde sabiti yer seviyesinin üstüne veya altına yerleştirmenize olanak tanır. Örneğin, "1,0" değerinde bir ofset belirtmek, bağlantının arazinin bir metre üzerinde "kaymasına" neden olur.
  • Çatı, sabiti verilen enlem ve boylamdaki herhangi bir yapının üst kısmına göre yerleştirir. Arazi sabitleme noktası gibi, "Yükseklik Ofseti" alanı da sabitleme noktasını çatı konumuna göre yukarı veya aşağı (metre cinsinden) hareket ettirmenize olanak tanır.
  • WGS84, WGS84 koordinat sistemine göre, sabitleme noktasını belirli bir mutlak rakıma (metre cinsinden) yerleştirir. Nesneyi bu şekilde yerleştirmek için deneme yanılma yöntemi kullanmanız gerekebilir. WSG84'te "0" yüksekliği, ortalama deniz seviyesini göstermeyebilir ve GPS'in yüksekliğiyle eşleşmeyebilir. Ayrıca, oluşturulan 3D döşemelerin enlemi ve boylamı oldukça doğru olsa da nesneyi referans olarak 3D döşemeleri kullanarak zemin seviyesine yerleştirmeye çalışmak birkaç metreye kadar yükseklik hatasına neden olabilir.

Farklı ARCore Geospatial Anchor türleri hakkında daha fazla bilgi edinmek için Geospatial Geliştirici Kılavuzu'na bakın.

Hem arazi hem de çatı bağlantılarında WGS84 Yüksekliği alanı bulunur. Bu değer, Sahne Görünümü'nde nesnenin yüksekliğini ayarlamak için yalnızca Düzenleyici modunda kullanılır. Arazi ve çatı yüksekliği yalnızca çalışma zamanında belirlenir. Bu nedenle, WGS84 Yüksekliği alanı, uygulamayı geliştirirken sabitleme noktasını belirli bir yükseklikte görselleştirmenize olanak tanır. WGS84 Yüksekliği alanı, arazi ve çatı sabitleme noktaları için çalışma zamanında yoksayılır.

Bağlayıcıya geometri ekleme

Uygulamayı şimdi oluşturup çalıştırırsanız AR özellikli uygulamanızda bağlantı noktasını görmezsiniz. Bunun nedeni, bağlantı noktasına geometri eklenmemiş olmasıdır. Ankraj noktasına basit bir 3D öğe ekleyelim: Sahne hiyerarşisinde AR Geospatial Creator Anchor nesnenizi sağ tıklayın. Bağlam menüsünden 3D Nesne > Küp'ü seçin. Sahne görünümünüzde, sabit öğenizin alt öğesi olarak gri bir küp görmelisiniz. Nesnenin konumunu veya dönüşünü düzenleyicide taşımaya karar verirseniz alt küp öğesi yerine kök Anchor nesnesini taşımanızı öneririz. Bu, enlem / boylamdan oyun koordinatlarına çevirideki hatayı azaltmaya yardımcı olur.

Küp temel öğesi içeren bir Geospatial Creator Anchor

Elbette, daha karmaşık geometri ve rastgele bileşenler ile alt öğeler de tutturma noktasına ekleyebilirsiniz.

Uygulamanızı derleyip çalıştırma

Artık çıpanızı gerçek dünyada görme zamanı! Uygulamanızı oluşturup çalıştırmayı deneyin, ardından küpü görmeyi beklediğiniz konuma gidin. Bu seçenek mevcut mu? Tebrikler! Artık Geospatial Creator ile daha karmaşık AR deneyimleri oluşturmaya hazırsınız.

Sorunla karşılaşırsanız Sorun Giderme Kılavuzu'na bakın.

Şimdi farklı geometrilere sahip ek AR Geospatial Creator Anchors eklemek için harika bir zaman. Çeşitli çatı ve arazi bağlantı noktalarıyla ve bunların ofsetleriyle denemeler yapın. Nesnelerle etkileşimi etkinleştirmek veya nesnelere animasyon eklemek için komut dosyaları ekleyin.

Geospatial Creator Anchors ve ARGeospatialAnchor sınıfını anlama

Karmaşık ve etkileşimli AR deneyimleri oluştururken Geospatial Creator Anchors ile ARCore'un ARGeospatialAnchor C# sınıfı arasındaki ilişkiyi anlamak faydalıdır:

Bir ARGeospatialAnchor yalnızca ARAnchorManager üzerindeki işlevlerden biri çağrılarak çalışma zamanında oluşturulabilir ve yalnızca AR oturumu sabitlendikten sonra oluşturulabilir. Geospatial Creator Anchor, sahnenizde bulunan ve AR oturumunun ARGeospatialAnchor nesnelerini çözmeye hazır olmasını bekleyen bir yer tutucu olarak düşünülebilir. Oturum hazır olduğunda yer tutucu, ARAnchorManager oluşturmak ve ARGeospatialAnchor çözmek için otomatik olarak ARAnchorManager çağrısı yapar.

Çalışma zamanı sabitleme noktası çözümlendikten hemen sonra, sahne hiyerarşinizdeki Geospatial Creator Anchor, yeni GameObject'e alt öğe olarak eklenir. Bu, Geospatial Creator Anchor'ın tüm bileşenlerinin veya alt öğelerinin yeni ARGeospatialAnchor'ın alt bileşenleri ya da torunları olacağı anlamına gelir. Örneğin, Geospatial Creator Anchor'a eklenen bir geometri öğesinin transform, ARGeospatialAnchor öğesinin transform'sını devralır ve bu nedenle çalışma zamanı AR oturumunda beklenen konuma yerleştirilir.

Çalışma zamanında belirli ARGeospatialAnchor GameObjects'i tanımlamanız gerekiyorsa sahneyi, name özelliği Geospatial Creator kullanılarak oluşturulan sabitle eşleşen nesneler için arayabilirsiniz. AR oturumu başlatılırsa söz konusu nesnenin parent değeri, ilgili ARGeospatialAnchor nesnesi olur.

Sorun giderme

Sabitleme noktam neden hareket ediyor?

Özellikle uygulama ilk kez başlatıldığında, sabitleme noktasının yavaşça "kaydığını" veya birkaç metre aniden atladığını fark edebilirsiniz. Bu durum, VPS oturumu kameranın tam konumunu belirlemeye ve hassaslaştırmaya devam ederken meydana gelir. Yatay ve dikey doğruluk birden fazla karede iyileştikçe, sabitleme noktası daha doğru bir konumda yeniden çizilir ve hareket yanılsaması oluşturulur. Konum doğruluğu belirli bir eşiğe ulaşana kadar nesneyi farklı şekilde (veya hiç) oluşturmak isteyebilirsiniz. Bunu yapmak için ARCoreEarthManager.CameraGeospatialPose özelliğini sorgulayarak mevcut çerçeve güncellemesinin doğruluğunu belirleyebilirsiniz.

Bağlantı noktam neden yanlış yükseklikte görünüyor?

Geospatial Creator Anchors için "Manuel" yükseklik türü kullanılırken bağlantı noktasının yüksekliği WGS84'e göre (metre cinsinden) ayarlanır. Belirli bir konumda, harita döşemelerinde gösterilen görünür yer seviyesi ile Google'ın Görsel Konumlandırma Sistemi (VPS) tarafından bildirilen gerçek yer seviyesi arasında birkaç metreye kadar fark olabilir. Geospatial Anchor, ç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 şahsen doğrulamanızı öneririz. Ardından, Unity Düzenleyici'de yüksekliği, söz konusu konumdaki bilinen VPS yüksekliğiyle eşleşecek şekilde değiştirebilirsiniz.

Harita döşemeleri, düzenleyicinin sahne görünümünde düzgün şekilde oluşturulmuyor

Cesium3DTileset karo yükleniyor gibi görünüyorsa ancak sahne görünümünüzde düz pembe renkte oluşturuluyorsa Unity'nin Shader Graph paketini projenize ekleyin. Bu paket, Unity'nin yerleşik oluşturucusunu kullanan projeler varsayılan olarak bu paketi içermese de Cesium için gereklidir.

Shader Graph'i eklemek için Unity Paket Yöneticisi'ni (Window > Package Manager) açın. Paket Yöneticisi penceresinin üst kısmındaki açılır menüden "Packages: Unity Registry" (Paketler: Unity Kayıt Defteri) seçeneğini belirleyerek 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 döşemeler yeniden yüklenmeli ve Sahne Görünümü'nde düzgün şekilde oluşturulmalıdır.

Uygulama, çalışma zamanında kamera görünümü yerine siyah ekran gösteriyor

Unity'nin Evrensel Oluşturma İşlem Hattı (URP), varsayılan olarak AR kamerası için yapılandırılmaz. Çalışma zamanında kamera çıkışı yerine siyah ekran görüyorsanız sahnenizdeki her URP oluşturucusuna AR Background Renderer Feature eklemeniz gerekir.

AR Background Renderer özelliğini ekleme

Özelliği eklemek için projenizde "renderer" araması yapın. Her URP Oluşturucu nesnesi için Inspector'daki "Add Renderer Feature" (Oluşturucu Özelliği Ekle) düğmesini tıklayın ve AR Background Renderer'ı ekleyin.

Neden başlangıç noktasından uzağa yerleştirilen bağlantı noktaları yanlış yerleştirilmiş gibi görünüyor?

WGS84 koordinatlarından Unity oyun koordinatlarına dönüştürme, kayan nokta aritmetik hassasiyeti nedeniyle hataya tabidir. Bu hata, başlangıç noktanızın AR bağlantı noktalarınızın yakınında olduğundan emin olarak en aza indirilebilir. 20 km'den uzun mesafeler hatalara yol açabilir. AR deneyiminiz uzun mesafeleri kapsıyorsa her sahnede benzersiz bir bağlantı noktası bulunan birden fazla sahne kullanmanızı öneririz.