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
- Unity için Android XR Uzantıları
- Ö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 yeni 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'i kullanan karma gerçeklik şablonları da 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:
- Unity OpenXR: Android XR ve Unity için Android XR Uzantıları dahil XR sağlayıcı eklentileri
- 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 kare zamanlaması dahil XR grafik kılavuzu
- Ses uzamsallaştırıcıları desteği de dahil olmak üzere XR sesli rehberlik
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 derleme ayarları, Android için uygulamanızı oluşturma ve Google Play'e teslim etme gibi konular ele alınır.
Android XR için Unity paketleri
Android XR için Unity uygulamaları oluşturmayı destekleyen 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. Unity OpenXR Android XR paketi, uygulamayı sağlar. Bu paketi kullanmaya başlamak için Başlangıç Kılavuzu'nu içeren paket kılavuzuna bakın.
Unity için Android XR Uzantıları
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): Düzlem |
Bu iki özellik aynıdır. Birini kullanabilirsiniz. Android XR (Uzantılar): Geliştiricilerin Android XR (Uzantılar): Nesne İzleme ve kalıcı bağlantı noktaları özelliklerini kullanabilmesi için Plane dahil edildi. Bu sayede, Unity OpenXR Android XR paketine bağımlı olmaları gerekmez. 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'ı 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 Composition Layer Support özelliğini 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 hatırlatırız. |
|
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şlemesi yapması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 Eklenti Yönetimi'ni 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'ı etkinleştirerek Unity Input System'de 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. Ek 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), Unity için Android XR Uzantıları 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, uygulama özelinde görsel içerik (ör. avatar görselleri) yerleştirmek için kullanılabilir. Avuç duruşu, hem avuç pozisyonunu 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 gelen 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.
Yüz Takibi Güven Bölgeleri
XR_ANDROID_face_tracking uzantısı üç yüz bölgesi için güven değerleri sağlar: sol üst, sağ üst ve alt yüz. 0 (güven yok) ile 1 (en yüksek güven) arasında değişen bu değerler, her bölge için yüz izlemenin doğruluğunu gösterir.
Bu güven değerlerini, blendshape'leri kademeli olarak devre dışı bırakmak veya ilgili yüz bölgesine görsel filtreler (ör. bulanıklaştırma) uygulamak için kullanabilirsiniz. Temel bir yüz için ilgili yüz bölgesindeki şekil karışımlarını devre dışı bırakın.
"Alt yüz" alanı, ağız, çene, yanak ve burun dahil olmak üzere gözlerin altındaki her şeyi ifade eder. Üstteki iki bölge, yüzün sol ve sağ taraflarındaki gözleri ve kaş bölgesini içerir.
Aşağıdaki C# kod snippet'inde, Unity komut dosyasında güven verilerine nasıl erişileceği ve bu verilerin nasıl kullanılacağı gösterilmektedir:
using UnityEngine;
using Google.XR.Extensions;
public class FaceTrackingConfidence : MonoBehaviour
{
void Update()
{
if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.HasValue)
{
DebugTextTopCenter.text = "XrInstance hasn't been initialized.";
return;
}
else if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.Value)
{
DebugTextTopCenter.text = "XR_ANDROID_face_tracking is not enabled.";
return;
}
for (int x = 0; x < _faceManager.Face.ConfidenceRegions.Length; x++)
{
switch (x)
{
case (int)XRFaceConfidenceRegion.Lower:
regionText = "Bottom";
break;
case (int)XRFaceConfidenceRegion.LeftUpper:
regionText = DebugTextConfidenceLeft;
break;
case (int)XRFaceConfidenceRegion.RightUpper:
regionText = DebugTextConfidenceRight;
break;
}
}
}
Daha fazla bilgi için Android XR Extensions for Unity belgelerine bakın.
Elleri oluşturma yöntemini seçin
Android XR, elleri iki şekilde oluşturmayı 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'da, kullanıcıların geri gitmesi, başlatıcıyı açması veya çalışan uygulamalara genel bakması için bir menü açmasını sağlayan bir sistem hareketi bulunur. 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.