Nasıl yapılır? rehberleri

Unity ve Android XR'ı kullanmaya başlama

Okuma süresi 6 dakika
Luke Hopkins
Geliştirici İlişkileri Mühendisi, Android

Android XR destekli Samsung Galaxy XR ile tanışın. Bu blog yayını, Android XR Spotlight Week kapsamında yayınlanmaktadır. Bu etkinlikte, uygulamalarınızı Android XR için öğrenmenize, oluşturmanıza ve hazırlamanıza yardımcı olmak üzere tasarlanmış kaynaklar (blog yayınları, videolar, örnek kodlar ve daha fazlası) sunuyoruz. 

XR geliştirmeye başlamak için daha iyi bir zaman olmamıştı. Geçtiğimiz aralık ayında, Google'ın OpenXR ve Vulkan gibi açık standartlar üzerine kurulu yeni Android platformu Android XR'ı duyurmuştuk. Bu platform, XR geliştirmeyi hiç olmadığı kadar erişilebilir hale getiriyor.


Unity'nin mevcut XR araçlarıyla birlikte kullanıldığında güçlü ve olgun bir geliştirme yığını elde edersiniz. Bu sayede, birden fazla cihazda çalışan XR uygulamaları oluşturup dağıtabilirsiniz.

openxr_face_tracking2.webp

Daha önce XR geliştirme deneyiminiz olup olmaması fark etmeksizin, başlangıç yapmanıza yardımcı olmak istiyoruz.

Bu blog, Android XR ve Unity geliştirme konusunda size yol gösterecek. Ortamınızı yapılandırma, paket ekosistemini anlama ve geliştirmeye başlama ile ilgili pratik adımlara odaklanacağız.

Bu blogun sonunda şunları iyi bir şekilde anlamış olacaksınız:

  • Paket ekosistemi
  • Temel kurulum adımları
  • Giriş yöntemleri
  • Gizlilik ve izinler
  • Bileşim katmanları

Android XR geliştirme için Unity

Platformlar arası uyumluluğu nedeniyle Unity'yi tercih edebilirsiniz. Bu sayede, bir kez oluşturup Android XR ve diğer XR cihazlara dağıtım yapabilirsiniz.

Unity'yi kullanırken olgun XR ekosisteminden ve araçlarından yararlanabilirsiniz. XR Interaction Toolkit, OpenXR plugin, XR composition layers, XR Hands gibi yerleşik paketleri, XR'a hazır bileşenler ve şablonlarla dolu kapsamlı bir öğe mağazası, XR simülasyon ve test araçları bulunur. Geçtiğimiz kasım ayında Unity 6'nın yayınlanmasıyla birlikte, iyileştirilmiş Universal Render Pipeline (URP) performansından, daha iyi Vulkan grafik desteğinden ve geliştirilmiş derleme profillerinden de yararlanabilirsiniz.

Neler yapılabileceğine dair fikir edinmek için aşağıdaki örnek projelere göz atabilirsiniz:

Temel kurulum: geliştirme temeliniz

Unity 6 ile ilgili gereksinimler ve yükleme

Uygulamanızı oluşturmak için Unity 6'yı kullanmanız gerekir. Önceki sürümler Android XR'yi desteklemez. Önce Unity Hub'ı, ardından bu adımları uygulayarak Android Build Support modülüyle Unity 6'yı yükleyin.

unity6.png

Android XR derleme profilleri: yapılandırmayı basitleştirme

Unity derleme profilleri, platforma özel ayarlarınızı ve yapılandırmalarınızı depolayan proje öğeleridir. Bu nedenle, birden fazla menüde 15-20 farklı ayarı manuel olarak yapmanız gerekmez. Bunun yerine, bu ayarları otomatik olarak yapmak için bir derleme profili kullanabilirsiniz.
Kendi derleme profillerinizi oluşturabilirsiniz ancak şu an için oluşturduğumuz özel Android XR derleme profilini kullanmanızı öneririz.

Unity projenizde Dosya > Derleme Profili'ni seçerek derleme profilinizi belirleyebilirsiniz. Talimatların tamamı için Android XR için geliştirme iş akışı sayfasına bakın.

Kendi değişikliklerinizi yaparsanız ekibinizle paylaşmak için yeni bir derleme profili oluşturabilirsiniz. Bu sayede, genel olarak tutarlı bir derleme deneyimi elde edersiniz.

buildprofiles.png

Bu adımlardan sonra Android XR cihazlar için APK'nızı oluşturup çalıştırabilirsiniz.

Grafik API'si: Vulkan neden önemlidir?

Unity projenizi Android XR derleme profiliyle kurduktan sonra öncelikle grafik API'niz olarak Vulkan'ı ayarladığınızdan emin olmanızı öneririz. Android XR, Vulkan öncelikli bir platform olarak geliştirilmiştir. Google, Mart 2025'te Vulkan'ın artık Android'in resmi grafik API'si olduğunu duyurdu. Bu modern ve düşük seviyeli grafik API'si, geliştiricilerin modern GPU'ların performansını en üst düzeye çıkarmasına yardımcı olur. Ayrıca ışın izleme ve çoklu iş parçacığı gibi ileri seviye özellikler etkinleştirerek gerçekçi ve etkileyici oyun görselleri sunar.

Bu standartlar, mevcut uygulamalarınız için en iyi uyumluluğu sağlar ve taşıma ile ilgili sorunları ve maliyetleri azaltır. Ayrıca, URP Application Space Warp ve foveated rendering gibi gelişmiş Android XR özelliklerinin etkinleştirilmesini sağlar. 

Unity 6, Vulkan'ı otomatik olarak işler. Bu nedenle, Android XR derleme profilini kullandığınızda Unity, Vulkan'ı grafik API'niz olarak yapılandırır. Bu sayede, manuel yapılandırma yapmadan tüm gelişmiş Android XR özelliklerine erişebilirsiniz.

Grafik API'si ayarlarınızı "Düzenle" > "Proje Ayarları" > "Oynatıcı" > "Android sekmesi" > "Diğer ayarlar" > "Grafik API'leri"ne giderek doğrulayabilirsiniz.

appentrypoint.png

Paket ekosistemini anlama

Unity'de Android XR için kullanabileceğiniz iki farklı paket vardır. Biri Unity için Android XR Uzantıları'nı, diğeri ise Unity OpenXR: Android XR paketini kullanmaktır.

Bunlar aynı şey gibi görünebilir ancak biraz sabırlı olun.

Unity OpenXR: Android XR paketi, Android XR desteği için resmi Unity paketidir. OpenXR standartları aracılığıyla sunulan Android XR özelliklerinin çoğunu sağlar. Ayrıca karma gerçeklik özellikleri için AR Foundation entegrasyonunu da etkinleştirir. Unity OpenXR: Android XR paketini kullanmanın temel avantajı, XR cihazları desteklemek için birleşik bir API sunmasıdır.


Android XR Extensions for Unity ise Google'ın, Android XR cihazlar için geliştirme yapmak üzere özel olarak tasarlanmış XR paketidir. Unity OpenXR paketini ortam karıştırma modları, sahne ağ oluşturma, görüntü takibi ve vücut takibi gibi ek özelliklerle tamamlar. Bu durumda yalnızca Android XR cihazlar için geliştirme yapabilirsiniz.


Hangisini seçeceğiniz, özel ihtiyaçlarınıza bağlıdır. Ancak genellikle Unity OpenXR: Android XR'ı kullanmanızı öneririz. Bu seçenek, uygulamanızın uyumlu olacağı cihazlar konusunda çok daha fazla esneklik sunar. Ardından, uygulama gereksinimlerinize göre Unity için Android XR Uzantıları'nı ekleyebilirsiniz.

Paketleri yükleme

Yeni bir paket eklemek için projeniz Unity'de açıkken "Window" (Pencere) > "Package Management" (Paket Yönetimi) > "Package Manager" (Paket Yöneticisi) seçeneğini belirleyin.

Buradan, "Unity Registry" sekmesinden bu paketleri yükleyebilirsiniz:

packagemanager.png

Android XR for Unity paketini, GitHub üzerinden yükleyebilirsiniz. Bunun için ➕ simgesini, "Install package from git URL" (Paketi Git URL'sinden yükle) seçeneğini belirleyin ve "https://github.com/android/android-xr-unity-package.git" adresini girin.

packagemanager2.png

Gerekli OpenXR özellikleri

Gerekli paketleri yüklediğinize göre, projemizin çalışması için bazı temel özellikleri etkinleştirelim.

Android için OpenXR ayarını etkinleştirebilirsiniz: "Düzenle" -> "Proje Ayarları" -> "XR Eklenti Yönetimi" -> Android'i tıklayın ve OpenXR'ı etkinleştirin

xrpluginmgmt.png

Ardından, "Android XR desteği"ni etkinleştirmemiz gerekiyor. Diğer OpenXR özelliklerini gerektiğinde ele alacağız. Şu an için yalnızca Android XR desteğinin etkinleştirilmesi gerekiyor.

Giriş

Android XR; eller, ses, göz takibi, klavye ve kontrol cihazları için girişi destekler. Başlangıç için en iyi hazır öğeleri içerdiğinden XR Interaction Toolkit ve XR Hands'i yüklemenizi öneririz. Bu hazır öğeleri kullanarak uygulamanızda elleri ve kontrol cihazlarını desteklemek için ihtiyacınız olan her şeye sahip olursunuz.

xrinteractiontoolkit.png

XR Hands ve XR Interactive araç seti yüklendikten sonra Starter Assets ve Hands Interaction Demo'yu içe aktarmanızı öneririz. Ardından El Etkileşimi ve Khronos Simple Controller profillerini etkinleştirmeniz, El Takibi Alt Sistemi ve Meta El Takibi Hedefleme özelliklerini açmanız gerekir.

Bu ayarları "Düzenle" > "Proje Ayarları" > "XR Eklenti Yönetimi" > "OpenXR" bölümüne giderek düzenleyebilirsiniz.

profiles.png

Ayrıca, kullanıcının XR alanındaki konumunu ve yönünü temsil eden Unity'nin prefabrik öğesi XR Origin'i de öneririz. Bu, XR deneyiminizi doğru bakış açısından oluşturmak için gereken kamera düzeneğini ve izleme bileşenlerini içerir.

Bu prefab'ı eklemenin en basit yolu, daha önce içe aktardığımız ve burada "Hands Integration Toolkit" (Ellerle Entegrasyon Araç Seti) > "Hand Interaction" (Elle Etkileşim) > "Prefabs" (Prefab'lar) > "XR Origin" (XR Kaynağı) bölümünde bulabileceğiniz ellerle entegrasyon demosundan içe aktarmaktır.

prefabs.png

Kullanıcıların elleri ve kumandaları arasında otomatik olarak geçiş yapan XR Input Modality Manager'ı kullandığı için oyun nesnelerinizde "XR Origin" seçeneği yerine bu Prefab'ı kullanmanızı öneririz. Bu, eller ve kontrol cihazları arasında geçiş yaparken en iyi sonucu elde etmenizi sağlar.

Gizlilik ve izinler: kullanıcı güvenini kazanma

Ne geliştirirseniz geliştirin, kullanıcılardan çalışma zamanı izinleri almanız gerekir. Bunun nedeni, sahne anlama, göz takibi, yüz takibi ve el takibinin, kullanıcı için daha hassas olabilecek verilere erişim sağlamasıdır.

Bu özellikler, geleneksel masaüstü veya mobil uygulamalara kıyasla daha ayrıntılı kişisel bilgiler sağlar. Bu nedenle, çalışma zamanı izinleri kullanıcılarınızın hangi verileri paylaşacakları konusunda tam kontrol sahibi olmalarını sağlar. Bu nedenle, Android'in güvenlik ve gizlilik politikalarına uygun olarak Android XR'da bu özelliklerin her biri için izinler bulunur.

Örneğin, özel el hareketleri için XR Hands paketini kullanıyorsanız bu paket, kullanıcının elleriyle ilgili birçok bilgiyi izlemesi gerektiğinden el izleme izni istemeniz gerekir (aşağıya bakın). Buna el eklemi pozlarını, açısal ve doğrusal hızları izleme gibi işlemler dahildir.

Not: İzin gerektiren uzantıların tam listesi için XR geliştirici web sitesindeki bilgileri inceleyin.

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

Kompozisyon katmanlarıyla görsel kaliteyi artırma

Kullanıcı arayüzü öğelerini oluşturmak için Composition Layer kullanılması önerilir. Her şey doğrudan platformun birleştiricisine işlendiğinden, Unity'nin standart oluşturma ardışık düzenine kıyasla öğelerin çok daha yüksek kalitede görüntülenmesini mümkün kılar.

Örneğin, metin gösteriyorsanız standart Unity oluşturma işleminde bulanık metin, yumuşak kenarlar ve görsel yapaylıklar görülme olasılığı daha yüksektir. Bununla birlikte, kompozisyon katmanlarında metin daha net, ana hatlar daha keskin ve genel olarak deneyim daha iyi olur.


Metnin yanı sıra video, resim ve kullanıcı arayüzü öğelerini de çok daha yüksek kalitede oluşturur. Bu işlem, çalışma zamanının birleştirme katmanları için yerel destekten yararlanarak yapılır.

Beste Katmanları'nı etkinleştirmek için Paket Yöneticisi'ni açın, "Unity Register"ı seçin ve "XR Composition Layers"ı yükleyin.

Derleme ve çalıştırma

OpenXR paketleriniz yüklendiğine ve özellikler etkinleştirildiğine göre, el ve kafa hareketleri için hazır bir kurulumla sahnenizi oluşturabilir ve test için doğrudan başlığınıza dağıtabilirsiniz.

Sonraki adım: Becerilerinizi geliştirme

Android XR geliştirme ortamınızı kurup temel kavramları öğrendiğinize göre XR geliştirme yolculuğunuza devam etmek için yapmanız gerekenleri aşağıda bulabilirsiniz:

Öğrenmeye devam etmek için temel kaynaklar:

Keşfedebileceğiniz örnek projeler:

Yazan:

Okumaya devam edin