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:
- Unity OpenXR: Android XR ve Unity için Android XR Uzantıları da dahil olmak üzere XR sağlayıcı eklentileri
- Uygulama düzeyinde ek özellikler eklemek için XR destek paketleri
- Unity XR teknoloji paketini ve XR alt sistemlerini açıklayan bir XR mimari kılavuzu
- XR projesi oluşturma
- XR uygulamaları oluşturma ve çalıştırma
- Universal Render Pipeline, stereo oluşturma, foveated oluşturma, çoklu görüntü oluşturma bölgeleri ve VR kare zamanlaması dahil olmak üzere XR grafikleri rehberliği
- Ses uzamsallaştırıcılar desteği de dahil olmak üzere XR ses kılavuzu
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 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ış |
---|---|---|---|
Android XR: AR Oturumu
|
Android XR (Uzantılar): Oturum Yönetimi
|
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. |
|
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. |
|
Android XR: AR Kamera |
Yok |
Bu özellik, ışık tahmini ve tam ekran geçişi için destek sağlar. |
|
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. |
|
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. |
|
Android XR: AR Yüz
|
Android XR: Yüz İzleme
|
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. |
|
Android XR: AR Raycast
|
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. |
|
Android XR: AR Anchor |
Android XR (Uzantılar): Sabitleme
|
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. |
|
Android XR: AR Occlusion
|
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. |
Beste Katmanı Desteği (OpenXR eklentisi ve XR Beste Katmanı gereklidir) |
Android XR: Geçiş Katmanı Oluşturma
|
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 (OpenXR eklentisi gereklidir)
|
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. |
|
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. |
|
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:
- Proje Ayarları penceresini açın (menü: Düzenle > Proje Ayarları).
- Gerekirse eklenti bölümünü genişletmek için XR Eklenti Yönetimi'ni tıklayın.
- XR eklentileri listesinde OpenXR'ı seçin.
- Profil eklemek için Etkileşim Profilleri bölümünde + düğmesini seçin.
- 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
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.
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.