Android XR için Unity ile geliştirme

Bu kılavuzda, Android XR için Unity ile geliştirmeye genel bir bakış sunulmaktadır. Android XR, Unity'den beklediğiniz tanıdık araçlar ve özelliklerle çalışır. Unity'nin Android XR desteği OpenXR üzerine inşa edildiğinden, OpenXR'a Genel Bakış bölümünde açıklanan özelliklerin çoğu Unity'de de desteklenir.

Aşağıdakiler hakkında bilgi edinmek için bu kılavuzu inceleyin:

  • Android XR için Unity Desteği
    • Unity XR ile ilgili temel bilgiler
    • Android XR için uygulama geliştirme ve yayınlama
    • Android XR için Unity Paketleri
      • Unity OpenXR: Android XR paketi
      • Unity için Android XR uzantıları
      • Özellikler ve Uyumlulukla İlgili Hususlar
  • Giriş ve etkileşim

Android XR için Unity Desteği

Android XR için Unity uygulamaları oluştururken Unity 6'daki karma gerçeklik araçlarından ve özelliklerinden yararlanabilirsiniz. Hızlı bir başlangıç yapmanıza yardımcı olmak için XR Etkileşim Aracı Kiti, AR Foundation ve OpenXR Eklentisi'ni kullanan karma gerçeklik şablonları da bu pakete dahildir. Android XR için Unity ile uygulama geliştirirken oluşturma ardışık düzeniniz olarak Universal Render Pipeline'ı (URP) ve Grafik API'niz olarak Vulkan'ı kullanmanızı öneririz. Bu özellikler, Unity'nin yalnızca Vulkan ile desteklenen yeni grafik özelliklerinden bazılarından yararlanmanıza olanak tanır. Bu ayarların nasıl yapılandırılacağı hakkında daha fazla bilgi için proje kurulum kılavuzunu inceleyin.

Unity XR ile ilgili temel bilgiler

Unity veya XR geliştirme konusunda yeniyseniz temel XR kavramlarını ve iş akışlarını anlamak için Unity'nin XR Kılavuzu'na bakabilirsiniz. XR Kılavuzu aşağıdakiler hakkında bilgi içerir:

Android için uygulama geliştirme ve yayınlama

Unity, Android için geliştirme, derleme ve yayınlama ile ilgili ayrıntılı dokümanlar sağlar. Bu dokümanlar arasında Unity'de Android izinleri, Android Derleme Ayarları, Uygulamanızı Android için derleme ve Google Play'e yayınlama gibi konular yer alır.

Android XR için Unity Paketleri

Android XR için Unity uygulamaları oluşturmaya yönelik destek sağlayan iki paket vardır. Bu paketlerin her ikisi de Unity'nin XR Eklenti Yönetimi paketi aracılığıyla etkinleştirilebilen XR sağlayıcı eklentisidir. XR eklenti yöneticisi, XR eklentilerinin yüklenmesi, başlatılması, ayarları ve derleme desteği ile ilgili yardım sunmak ve yönetmek için Proje Ayarları'nı ekler. Uygulamanızın çalışma zamanında OpenXR özelliklerini çalıştırmasına izin vermek için projede bu özelliklerin eklenti yöneticisi aracılığıyla etkinleştirilmesi gerekir.

Bu resimde, Unity'nin düzenleyicisi aracılığıyla bu özellik gruplarını nerede etkinleştirebileceğinize dair bir örnek gösterilmektedir.

Unity XR eklentisi yönetim ekranı örneği

Unity OpenXR Android XR

Unity OpenXR Android XR paketi, Unity'ye Android XR desteği eklemek için kullanılan bir XR eklentisidir. Bu XR eklentisi, Unity için Android XR desteğinin büyük bir kısmını sağlar ve AR Foundation projeleri için Android XR cihaz desteğini etkinleştirir. AR Foundation, AR veya karma gerçeklik deneyimleri oluşturmak isteyen geliştiriciler için tasarlanmıştır. AR özellikleri için arayüzü sağlar ancak herhangi bir özelliği kendisi uygulamaz. Unity OpenXR Android XR paketi, uygulamayı sağlar. Bu paketi kullanmaya başlamak için Başlangıç Kılavuzu içeren paket kılavuzunu inceleyin.

Unity için Android XR uzantıları

Unity için Android XR Uzantıları, Unity OpenXR Android XR paketini destekler ve sürükleyici deneyimler oluşturmanıza yardımcı olacak ek özellikler içerir. Tek başına veya Unity OpenXR Android XR paketiyle birlikte kullanılabilir.

Bu paketi kullanmaya başlamak için proje oluşturma kılavuzumuzu veya Unity için Android XR uzantılarını içe aktarmayla ilgili hızlı başlangıç kılavuzumuzu inceleyin.

Özellikler ve Uyumlulukla İlgili Hususlar

Aşağıdaki tabloda, Unity OpenXR: Android XR paketi ve Unity için Android XR Uzantıları paketi tarafından desteklenen özellikler açıklanmaktadır. Bu tablo, ihtiyacınız olan özellikleri ve uyumlulukla ilgili hususları içeren paketi belirlemek için kullanılabilir.

Özellik

Unity OpenXR: Android XR özellik dizesi

Unity için Android XR uzantıları özellik dizesi

Kullanım alanları ve beklenen davranış

AR oturumu

Android XR: AR Oturumu

  • Özellik ayarları arasında "Arabellek Atma İşlemini Optimize Et (Vulkan)" bulunur.

Android XR (Uzantılar): Oturum Yönetimi

  • Özellik ayarları arasında Alt Örnekleme (Vulkan) ve URP SpaceWarp (Vulkan) bulunur.

Her iki paketteki özellikleri kullanmak için ilgili paket için AR oturumu özelliğini etkinleştirmeniz gerekir. Her iki özellik grubunu da aynı anda etkinleştirebilirsiniz. Özellikler, çakışmalarla ilgili işlemleri kendi aralarında yapar.

Cihaz izleme

Yok

Yok

Cihaz takibi, cihazın fiziksel alandaki konumunu ve dönüşünü izlemek için kullanılır. XR Origin GameObject, XROrigin bileşeni ve kamera ile TrackedPoseDriver içeren GameObject hiyerarşisi aracılığıyla cihaz takibi ve izlenebilir öğeleri Unity'nin koordinat sistemine dönüştürme işlemlerini otomatik olarak yönetir.

Kamera

Android XR: AR Kamera

Yok

Bu özellik, ışık tahmini ve tam ekran geçişi için destek sağlar.

Uçak algılama

Android XR: AR Plane

Android XR (Uzantılar): Uçak

Bu iki özellik aynıdır. Bunlardan birini kullanın. Android XR (Uzantılar): Düzlem, geliştiricilerin Unity OpenXR Android XR paketine bağımlı olmak zorunda kalmadan Android XR (Uzantılar): Nesne İzleme ve kalıcı ankraj özelliklerini kullanabilmesi için dahil edilmiştir. Gelecekte Android XR (Uzantılar): Düzlem, Android XR: AR Sabitleyici ile değiştirilecek.

Nesne izleme

Yok

Android XR (Uzantılar): Nesne İzleme

Bu özellik, referans nesne kitaplığıyla birlikte kullanıldığında fiziksel ortamdaki nesnelerin algılanması ve izlenmesi için destek sağlar.

Yüz izleme

Android XR: AR Yüz

  • Yalnızca XR_ANDROID_avatar_eyes
  • Yüz izleme yok

Android XR: Yüz İzleme

  • XR_ANDROID_face_tracking

Avatar gözleri desteği, Android XR: AR Yüz özelliği aracılığıyla sağlanır. Android XR: Yüz İzleme özelliği aracılığıyla kullanıcının yüz ifadelerine erişebilirsiniz. Dilerseniz bu iki özelliği birlikte kullanabilirsiniz.

Işın yayınları

Android XR: AR Raycast

  • Uçak Sabitleme
  • Derinlik ankrası

Yok

Bu özellik, bir ışın yayınlamanıza ve bu ışın ile fiziksel ortamda algılanan düzlem izlenebilirler veya derinlik izlenebilirler arasındaki kesişimi hesaplamanıza olanak tanır.

Bağlantılar

Android XR: AR Anchor

Android XR (Uzantılar): Sabitleme

  • Özellik ayarları, kalıcılığı içerir.

Her iki özellik de mekansal ve düzlem ankrajları için destek içerir. Bunlardan birini kullanın. Kalıcı sabitleme noktaları için Android XR (Uzantılar): Sabitleme noktası'nı kullanın. Gelecekte Android XR (Uzantılar): Sabitleme özelliği kaldırılacak ve tüm Sabitleme özellikleri Android XR: AR Sabitleme'de yer alacak.

Gölgeleme

Android XR: AR Occlusion

  • Ortam Derinliği

Yok

Gizleme, uygulamanızdaki karma gerçeklik içeriğinin fiziksel ortamdaki nesnelerin arkasında gizli veya kısmen gizlenmiş görünmesini sağlar.

Performans Metrikleri

Android XR Performans Metrikleri

Yok

Android XR cihazların performans metriklerine erişmek için bu özelliği kullanın.

Kompozisyon Katmanları

Beste Katmanı Desteği (OpenXR eklentisi ve XR Beste Katmanı gereklidir)

Android XR: Geçiş Katmanı Oluşturma

  • XR_ANDROID_composition_layer_passthrough_mesh

Temel kompozisyon katmanları (ör. dörtgen, silindir, projeksiyon) oluşturmak için Unity'nin kompozisyon katmanı desteğini kullanın. Android XR: Geçiş Katmanıyla Oluşturma, Unity'nin GameObject'inden veri okuyan özel bir örgüyle geçiş katmanı oluşturmak için kullanılabilir.

Foveated Rendering

Foveated Rendering (OpenXR eklentisi gereklidir)

  • Göz izlemeli fovea oluşturmayı destekler: Daha yüksek çözünürlüklü alan, kullanıcının şu anda baktığı yere odaklanır ve bu sayede kullanıcının daha az fark etmesini sağlar.

Foveation (Eski)

Foveated oluşturma, kullanıcının çevresel görüşündeki alanların çözünürlüğünü düşürerek oluşturma işlemini hızlandırır. Unity'nin foveated rendering özelliği yalnızca URP ve Vulkan kullanan uygulamalarda desteklenir. Unity için Android XR Uzantıları'ndaki Foveation (Eski) özelliği, BiRP ve GLES'i de destekler. Mümkün olduğunda Unity'nin foveated rendering özelliğini kullanmanızı öneririz. Android XR için derleme yaparken hem URP hem de Vulkan'ın önerilir.

Sınırsız Referans Alanı

Yok

Android XR: Sınırsız Referans Alanı

Bu özellik, XRInputSubsystem izleme kaynağı modunu Sınırsız olarak ayarlar. Sınırsız, XRInputSubsystem'in tüm InputDevices'i dünya sabit noktasına göre izlediğini gösterir. Bu sabit nokta değişebilir.

Ortam Karışım Modu

Yok

Ortam Karıştırma Modu

Bu özellik, geçiş etkinleştirildiğinde sanal görüntülerin gerçek dünya ortamıyla nasıl harmanlandığını kontrol eden XR ortam karışım modunu ayarlamanıza olanak tanır.

Giriş ve etkileşim

Android XR, çok modlu doğal girişi destekler.

El ve göz takibi dışında 6 DoF denetleyiciler, fare ve fiziksel klavye gibi çevre birimleri de desteklenir. Bu, Android XR için uygulamaların el etkileşimini desteklemesi gerektiği anlamına gelir ve tüm cihazların kontrol cihazlarıyla birlikte geleceği varsayılmaz.

Etkileşim Profilleri

Unity, XR uygulamanızın çeşitli XR cihaz ve platformlarıyla nasıl iletişim kuracağını yönetmek için etkileşim profilini kullanır. Bu profiller, farklı donanım yapılandırmaları için beklenen girişleri ve çıkışları belirler. Böylece, çeşitli platformlarda uyumluluk ve tutarlı işlevsellik sağlanır. Etkileşim profillerini etkinleştirerek XR uygulamanızın farklı cihazlarla düzgün şekilde çalıştığından, tutarlı giriş eşlemesi sağladığından ve belirli XR özelliklerine erişebildiğinden emin olabilirsiniz. Etkileşim profili ayarlamak için:

  1. Proje Ayarları penceresini açın (menü: Düzenle > Proje Ayarları).
  2. Gerekirse eklenti bölümünü genişletmek için XR Eklenti Yönetimi'ni tıklayın.
  3. XR eklentileri listesinde OpenXR'ı seçin.
  4. Profil eklemek için Etkileşim Profilleri bölümünde + düğmesini seçin.
  5. Listeden eklenecek profili seçin.

El Etkileşimi

El etkileşimi (XR_EXT_hand_interaction), OpenXR eklentisi tarafından sağlanır ve El Etkileşimi Profili'ni etkinleştirerek cihaz düzenini Unity Giriş Sistemi'nde gösterebilirsiniz. OpenXR tarafından tanımlanan dört işlem duruşu ("çimdikleme", "dokulama", "hedefleme" ve "kavrama") tarafından desteklenen el girişi için bu etkileşim profilini kullanın. Daha fazla el etkileşimi veya el izleme işlevine ihtiyacınız varsa bu sayfadaki XR Hands bölümüne bakın.

Göz Gazı Etkileşimi

Göz hareketi etkileşimi (XR_EXT_eye_gaze_interaction), OpenXR eklentisi tarafından sağlanır. Uzantının döndürdüğü göz pozu verilerini (konum ve rotasyon) almak için bu düzeni kullanabilirsiniz. OpenXR Giriş kılavuzundaki göz hareketi etkileşimi hakkında daha fazla bilgi edinin.

Denetleyici Etkileşimi

Android XR, 6 DoF kontrolörler için Oculus Touch Denetleyici Profili'ni destekler. Bu profillerin her ikisi de OpenXR eklentisi tarafından sağlanır.

Fare Etkileşimi

Android XR Fare Etkileşimi Profili (XR_ANDROID_mouse_interaction), Unity için Android XR Uzantıları tarafından sağlanır. Unity Giriş Sistemi'nde <AndroidXRMouse> cihaz düzenini gösterir.

Avuç İçi Poz Etkileşimi

OpenXR eklentisi, Unity Giriş Sistemi'nde <PalmPose> düzenini gösteren avuç içi hareket etkileşimi (XR_EXT_palm_pose) için destek sağlar. Avuç içi pozu, daha karmaşık kullanım alanları için el izleme gerçekleştiren uzantılara veya paketlere alternatif olarak tasarlanmamıştır. Bunun yerine, avatar görselleri gibi uygulamaya özgü görsel içerikler yerleştirmek için kullanılabilir. Avuç içi pozu hem avuç içi konumundan hem de yönden oluşur.

XR Hands

XR Hands paketi, el izleme verilerine (XR_EXT_hand_tracking ve XR_FB_hand_tracking_aim) erişmenize olanak tanır ve el eklemi verilerini el izlemeden giriş pozlarına dönüştürmek için bir sarmalayıcı sağlar. XR Hands paketi tarafından sağlanan özellikleri kullanmak için El Takibi Alt Sistemi ve Meta El Takibi Hedefleme OpenXR özelliklerini etkinleştirin.

El takibinin nasıl etkinleştirileceğini gösteren örnek

Daha ayrıntılı el duruşu veya el eklemi verilerine ihtiyacınız varsa ya da özel hareketlerle çalışmanız gerekiyorsa XR eller paketi yararlı olabilir.

Daha fazla bilgi için Unity'nin projenizde XR Hands'i ayarlamayla ilgili belgelerine bakın.

Elleri oluşturma yöntemi seçme

Android XR, elleri oluşturmanın iki yolunu destekler: el örgüsü ve hazır görselleştirici.

El örgüsü

Android XR Unity paketi, XR_ANDROID_hand_mesh extension'a erişim sağlayan bir El Örgü özelliği içerir. El ağları özelliği, kullanıcının elleri için ağlar sağlar. El örgüsü, elin geometrisini temsil eden üçgenlerin köşelerini içerir. Bu özellik, kullanıcının ellerinin gerçek geometrisini görselleştirmek için kişiselleştirilmiş bir ağ sağlamak amacıyla kullanılmalıdır.

XR Hands hazır modeli

XR Hands paketi, kullanıcının ellerini bağlama bağlamına uygun şekilde temsil etmek için tamamen donatılmış sol ve sağ eller içeren El görselleştirici adlı bir örnek içerir.

Sistem hareketleri

Android XR, kullanıcıların geri dönmesi, başlatıcıyı açması veya şu anda çalışan uygulamalara genel bakış elde etmesi için bir menü açan bir sistem hareketi içerir. Kullanıcı, dominant eliyle iki parmağını yakınlaştırarak bu sistem menüsünü etkinleştirebilir.

Kullanıcı sistem gezinme menüsüyle etkileşimde bulunduğunda uygulama yalnızca kafa hareketi izleme etkinliklerine yanıt verir. XR Hands paketi, kullanıcının bu sistem gezinme menüsüyle etkileşime geçmek gibi belirli işlemleri gerçekleştirdiğini algılayabilir. AimFlags SystemGesture ve DominantHand değerlerini kontrol ederek bu sistem işleminin ne zaman yapıldığını öğrenebilirsiniz. AimFlags hakkında daha fazla bilgi için Unity'nin Enum MetaAimFlags belgelerine bakın.

XR Etkileşim Aracı Kiti

XR Etkileşim Aracı Paketi, VR ve AR deneyimleri oluşturmak için kullanılan üst düzey, bileşen tabanlı bir etkileşim sistemidir. Unity giriş etkinliklerinden 3D ve kullanıcı arayüzü etkileşimlerini kullanılabilir hale getiren bir çerçeve sağlar. Dokunsal geri bildirim, görsel geri bildirim ve hareket dahil olmak üzere etkileşim görevlerini destekler.