Bu kılavuzda, Android XR için Unity ile geliştirme hakkında genel bilgiler verilmektedir. Android XR, Unity'den beklediğiniz tanıdık araçlar ve özelliklerle çalışır. Unity'nin Android XR desteği OpenXR üzerine kurulduğundan, OpenXR'a Genel Bakış bölümünde açıklanan özelliklerin çoğu Unity'de de desteklenir.
Aşağıdaki konular 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
- Android XR Extensions for Unity
- Özellikler ve Uyumlulukla İlgili Dikkat Edilmesi Gereken Noktalar
- Giriş ve etkileşim
Android XR için Unity desteği
Android XR için Unity uygulamaları oluştururken Unity 6'nın en son sürümlerindeki karma gerçeklik araçlarından ve özelliklerinden yararlanabilirsiniz. Bu kapsamda, hızlı bir başlangıç yapmanıza yardımcı olmak için XR Interaction Toolkit, AR Foundation ve OpenXR Plugin kullanan karma gerçeklik şablonları yer alır. Android XR için Unity ile uygulama geliştirirken Universal Render Pipeline'ı (URP) oluşturma ardışık düzeniniz, Vulkan'ı ise grafik API'niz olarak kullanmanızı öneririz. Bu özellikler, yalnızca Vulkan ile desteklenen Unity'nin grafik özelliklerinden bazılarını kullanmanıza olanak tanır. Bu ayarları yapılandırma hakkında daha fazla bilgi için proje kurulum kılavuzunu inceleyin.
Unity XR Basics
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ğıdaki konularla ilgili bilgiler içerir:
- XR sağlayıcı eklentileri (Unity OpenXR: Android XR ve Unity için Android XR Uzantıları dahil)
- Ek uygulama düzeyinde özellikler eklemek için XR destek paketleri
- Unity XR teknoloji yığını ve XR alt sistemlerini açıklayan bir XR mimarisi 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 çerçeve zamanlaması dahil XR grafik kılavuzu
- 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, oluşturma ve yayınlama konusunda ayrıntılı belgeler sunar. Bu belgelerde Unity'de Android izinleri, Android Build Settings, Android için uygulamanızı oluşturma ve Google Play'e teslimat gibi konular ele alınır.
Android XR için Unity paketleri
Android XR için Unity uygulamaları oluşturma desteği 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ı eklentileridir. XR eklenti yöneticisi, XR eklentilerinin yüklenmesi, başlatılması, ayarları ve derleme desteğiyle ilgili yardım sunmak ve bunları yönetmek için Proje Ayarları'nı ekler. Uygulamanızın çalışma zamanında OpenXR özelliklerini yürütmesine 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 bölümünü sağlar ve AR Foundation projelerinde 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 özellikleri kendisi uygulamaz. Uygulama, Unity OpenXR Android XR paketi tarafından sağlanır. Bu paketi kullanmaya başlamak için Başlangıç Kılavuzu'nu içeren paket kılavuzuna bakın.
Android XR Extensions for Unity
Android XR Extensions for Unity, Unity OpenXR Android XR paketini tamamlar 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 kurulumu kılavuzumuzu veya Android XR Extensions for Unity'yi içe aktarmaya yönelik hızlı başlangıç kılavuzumuzu inceleyin.
Özellikler ve Uyumlulukla İlgili Dikkat Edilmesi Gereken Noktalar
Aşağıdaki tabloda, Unity OpenXR: Android XR paketi ve Android XR Extensions for Unity paketi tarafından desteklenen özellikler açıklanmaktadır. Bu tablo, ihtiyacınız olan özellikleri hangi paketin içerdiğini ve uyumlulukla ilgili dikkat edilmesi gereken noktaları belirlemek için kullanılabilir.
Özellik |
Unity OpenXR: Android XR özellik dizesi |
Android XR Extensions for Unity özellik dizesi |
Kullanım alanları ve beklenen davranış |
---|---|---|---|
Android XR: AR Oturumu
|
Android XR (uzantılar): Oturum yönetimi
|
Herhangi bir paketteki özellikleri kullanmak için ilgili paketin AR oturumu özelliğini etkinleştirmeniz gerekir. Her iki özellik setini de aynı anda etkinleştirebilirsiniz. Çakışmalar, özellikler tarafından uygun şekilde ele alınır. |
|
Yok |
Yok |
Cihaz izleme, 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şisini kullanarak cihaz takibini ve izlenebilir öğeleri Unity'nin koordinat sistemine dönüştürmeyi otomatik olarak gerçekleştirir. |
|
Android XR: AR Camera |
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. Birini veya diğerini kullanabilirsiniz. Android XR (Uzantılar): Geliştiricilerin Android XR (Uzantılar): Nesne İzleme ve kalıcı bağlantı noktaları özelliklerini kullanabilmesi için düzlem dahil edildi. Bu sayede, Unity OpenXR Android XR paketine bağımlı olmaları gerekmiyor. Gelecekte Android XR (Extensions): Plane, Android XR: AR Anchor lehine kaldırılacak. |
|
Yok |
Android XR (Uzantılar): Nesne İzleme |
Bu özellik, fiziksel ortamdaki nesneleri algılayıp izlemeyi destekler ve referans nesne kitaplığıyla birlikte kullanılır. |
|
Android XR: AR Face
|
Android XR: Yüz İzleme
|
Avatar gözleri desteği, Android XR: AR Face özelliği aracılığıyla sağlanır. Android XR: Yüz İzleme özelliğiyle kullanıcının yüz ifadelerine erişme Bu iki özellik birlikte kullanılabilir. |
|
Android XR: AR Raycast
|
Yok |
Bu özellik, bir ışın yansıtmanıza ve bu ışın ile fiziksel ortamda algılanan düzlem izlenebilir öğeleri veya derinlik izlenebilir öğeleri arasındaki kesişimi hesaplamanıza olanak tanır. |
|
Android XR: AR Anchor |
Android XR (Uzantılar): Anchor
|
Her iki özellik de uzamsal ve düzlem tutturucuları destekler. Bir özelliği veya diğerini kullanabilirsiniz. Kalıcı bağlantı noktaları için Android XR (Uzantılar): Anchor'u kullanın. Gelecekte Android XR (Extensions): Anchor kaldırılacak ve tüm Anchor özellikleri Android XR: AR Anchor'da yer alacak. |
|
Örtme (Occlusion) |
Android XR: AR Occlusion
|
Yok |
Örtme, uygulamanızdaki karma gerçeklik içeriklerinin fiziksel ortamdaki nesnelerin arkasında gizli veya kısmen kapalı 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. |
Bileşim Katmanı Desteği (OpenXR eklentisi ve XR Bileşim Katmanı gereklidir) |
Android XR: Passthrough Composition Layer
|
Temel bileşim katmanları (ör. dörtgen, silindir, projeksiyon) oluşturmak için Unity'nin Bileşim Katmanı Desteği'ni kullanın. Android XR: Passthrough Composition Layer, Unity'nin GameObject'inden okuyarak özel bir ağ ile geçiş katmanı oluşturmak için kullanılabilir. |
|
Foveated Rendering (OpenXR eklentisi gereklidir)
|
Foveation (Eski) |
Foveated rendering, kullanıcının çevresel görüş alanındaki bölgelerin çözünürlüğünü düşürerek oluşturma işleminin hızlanmasını sağlar. 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, Yerleşik Oluşturma İşlem Hattı ve OpenGL ES'yi 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 önerildiğini unutmayın. |
|
Sınırsız Referans Alanı (Unbounded Reference Space) |
Yok |
Android XR: Sınırsız Referans Alanı |
Bu özellik, XRInputSubsystem izleme kaynağı modunu Unbounded olarak ayarlar. Sınırsız, XRInputSubsystem'in tüm InputDevice'ları değişebilen bir dünya tutturucusuyla ilişkili olarak izlediğini gösterir. |
Yok |
Ortam Karıştırma Modu |
Bu özellik, XR Ortam Karıştırma Modu'nu ayarlamanıza olanak tanır. Bu mod, geçiş etkinleştirildiğinde sanal görüntülerin gerçek dünya ortamıyla nasıl karıştırılacağını kontrol eder. |
Giriş ve etkileşim
Android XR, çok formatlı doğal girişi destekler.
El ve göz takibinin yanı sıra 6DoF denetleyiciler, fare ve fiziksel klavye gibi çevre birimleri de desteklenir. Bu nedenle, Android XR uygulamalarının el etkileşimini desteklemesi beklenir ve tüm cihazların kontrol cihazlarıyla birlikte geleceği varsayılamaz.
Etkileşim Profilleri
Unity, XR uygulamanızın çeşitli XR cihazları ve platformlarıyla nasıl iletişim kurduğunu yönetmek için etkileşim profilini kullanır. Bu profiller, farklı donanım yapılandırmaları için beklenen giriş ve çıkışları belirleyerek çeşitli platformlarda uyumluluğu ve tutarlı işlevselliği destekler. Etkileşim profillerini etkinleştirerek XR uygulamanızın farklı cihazlarda doğru şekilde çalışmasını, tutarlı giriş eşlemesini korumasını ve belirli XR özelliklerine erişmesini sağlayabilirsiniz. Etkileşim profili ayarlamak için:
- Proje Ayarları penceresini açın (menü: Düzenle > Proje Ayarları).
- Eklenti bölümünü genişletmek için XR Plug-in Management'ı tıklayın (gerekirse).
- XR eklentileri listesinde OpenXR'ı seçin.
- Etkileşim Profilleri bölümünde, profil eklemek için + düğmesini seçin.
- Listeden eklenecek profili seçin.
El Etkileşimi
El etkileşimi (XR_EXT_hand_interaction
), OpenXR Plugin tarafından sağlanır. <HandInteraction>
Cihaz düzenini Hand Interaction Profile'ı (El Etkileşimi Profili) etkinleştirerek Unity Input System'de (Unity Giriş Sistemi) gösterebilirsiniz. OpenXR tarafından tanımlanan dört işlem pozu ("pinch", "poke", "aim" ve "grip") ile 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özle Etkileşim
Gözle bakma etkileşimi (XR_EXT_eye_gaze_interaction
) OpenXR Plugin tarafından sağlanır ve bu düzeni, uzantının döndürdüğü göz pozu verilerini (konum ve döndürme) almak için kullanabilirsiniz. OpenXR Giriş Kılavuzu'nda gözle etkileşim hakkında daha fazla bilgi edinin.
Denetleyici Etkileşimi
Android XR, 6DoF kumandalar için Oculus Touch Controller Profile'ı destekler. Bu profillerin her ikisi de OpenXR eklentisi tarafından sağlanır.
Fare Etkileşimi
Android XR Mouse Interaction Profile (XR_ANDROID_mouse_interaction
)
Android XR Extensions for Unity tarafından sağlanır. Unity Input System'de <AndroidXRMouse>
cihaz düzenini kullanıma sunar.
Palm Pose Interaction
OpenXR eklentisi, Palm Pose
Interaction (XR_EXT_palm_pose
) için destek sağlar. Bu özellik, Unity Input System'deki <PalmPose>
düzenini kullanıma sunar.
Avuç içi pozu, daha karmaşık kullanım alanları için el takibi gerçekleştiren uzantıların veya paketlerin alternatifi olarak tasarlanmamıştır. Bunun yerine, avatar görselleri gibi uygulamaya özel görsel içerikleri yerleştirmek için kullanılabilir. Avuç içi pozu, hem avuç içi konumunu hem de yönünü içerir.
XR Hands
XR Hands paketi, XR_EXT_hand_tracking
ve XR_FB_hand_tracking_aim
kullanarak el takibi verilerine erişmenize olanak tanır ve el takibinden elde edilen el eklemi verilerini giriş pozlarına dönüştürmek için bir sarmalayıcı sağlar. XR Hands paketinin sunduğu özellikleri kullanmak için Hand Tracking Subsystem ve Meta Hand
Tracking Aim OpenXR özelliklerini etkinleştirin.
Daha ayrıntılı el pozu veya el eklemi verilerine ihtiyacınız varsa ya da özel hareketlerle çalışmanız gerekiyorsa XR eller paketi faydalı olabilir.
Daha fazla bilgi için Unity'nin projenizde XR Hands'i ayarlama ile ilgili belgelerine bakın.
Elleri oluşturma yöntemini seçin
Android XR, elleri oluşturmak için iki yöntem destekler: el ağı ve prefab görselleştirici.
El ağı
Android XR Unity paketi, XR_ANDROID_hand_mesh extension
erişimi sağlayan bir El Ağı özelliği içerir. El ağı özelliği, kullanıcının elleri için ağlar sağlar. El ağı, bir elin geometrisini temsil eden üçgenlerin köşelerini içerir. Bu özellik, görselleştirme için kullanıcının ellerinin gerçek geometrisini temsil eden kişiselleştirilmiş bir ağ sağlamak amacıyla tasarlanmıştır.
XR Hands prefab'i
XR Hands paketi, Hands visualizer adlı bir örnek içerir. Bu örnek, kullanıcının ellerinin bağlama uygun şekilde gösterilmesi için tamamen donatılmış sol ve sağ elleri içerir.
Sistem hareketleri
Android XR, kullanıcıların geri gitmesi, başlatıcıyı açması veya çalışan uygulamalara genel bakması için bir menü açmaya yönelik sistem hareketi içerir. Kullanıcı, baskın elini kullanarak bu sistem menüsünü etkinleştirebilir.
Kullanıcı, sistem gezinme menüsüyle etkileşimde bulunduğunda uygulama yalnızca baş izleme etkinliklerine yanıt verir. XR Hands paketi, kullanıcının bu sistem gezinme menüsüyle etkileşim kurma gibi belirli işlemleri gerçekleştirdiğini algılayabilir. AimFlags
, SystemGesture
ve DominantHand
için kontrol yaptığınızda bu sistem işleminin ne zaman gerçekleştirildiğini öğrenebilirsiniz. AimFlags
hakkında daha fazla bilgi için Unity'nin Enum MetaAimFlags dokümanına bakın.
XR Interaction Toolkit
XR Interaction Toolkit paketi, VR ve AR deneyimleri oluşturmak için kullanılan üst düzey, bileşen tabanlı bir etkileşim sistemidir. Unity giriş etkinliklerinden 3B 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.
OpenXR™ ve OpenXR logosu, The Khronos Group Inc. şirketinin ticari markalarıdır ve Çin, Avrupa Birliği, Japonya ve Birleşik Krallık'ta ticari marka olarak tescillidir.