Instrukcje

Pierwsze kroki z Unity i Androidem XR

Czas czytania: 6 minut
Luke Hopkins
Inżynier ds. relacji z deweloperami, Android

Samsung Galaxy XR jest już dostępny z Androidem XR! Ten post na blogu jest częścią tygodnia poświęconego Androidowi XR, w ramach którego udostępniamy materiały – posty na blogu, filmy, przykładowy kod i inne – które pomogą Ci poznać Androida XR, tworzyć aplikacje na tę platformę i przygotowywać do niej swoje aplikacje. 

To najlepszy moment, aby zacząć tworzyć aplikacje w technologii XR. W grudniu ubiegłego roku ogłosiliśmy wprowadzenie Androida XR, nowej platformy Androida Google opartej na otwartych standardach, takich jak OpenXR i Vulkan, która sprawia, że programowanie XR jest łatwiejsze niż kiedykolwiek wcześniej.


W połączeniu z istniejącymi narzędziami XR Unity otrzymujesz zaawansowany i sprawdzony stos technologiczny. Umożliwia to tworzenie i wdrażanie aplikacji XR, które działają na wielu urządzeniach.

openxr_face_tracking2.webp

Niezależnie od tego, czy masz już doświadczenie w tworzeniu aplikacji XR, czy nie, chcemy Ci pomóc w rozpoczęciu pracy.

Z tego posta dowiesz się, jak zacząć tworzyć aplikacje na Androida XR i Unity. Skupimy się na praktycznych krokach, które pozwolą Ci skonfigurować środowisko, poznać ekosystem pakietów i zacząć tworzyć aplikacje.

Po przeczytaniu tego posta dowiesz się:

  • Ekosystem pakietów
  • Najważniejsze kroki konfiguracji
  • Metody wprowadzania
  • Prywatność i uprawnienia
  • Warstwy kompozycji

Unity do tworzenia aplikacji na Androida XR

Możesz wybrać Unity ze względu na zgodność na wielu platformach, która umożliwia tworzenie aplikacji raz i wdrażanie jej na Androidzie XR i innych urządzeniach z XR.

Korzystając z Unity, możesz wykorzystać dojrzały ekosystem i narzędzia XR. Ma już sprawdzone pakiety, takie jak XR Interaction Toolkit, wtyczka OpenXR, warstwy kompozycji XR, XR Hands, obszerny sklep z zasobami pełen komponentów i szablonów gotowych do użycia w XR oraz narzędzia do symulacji i testowania XR. Od listopada ubiegłego roku, kiedy to udostępniliśmy Unity 6, możesz też korzystać z lepszej wydajności uniwersalnego potoku renderowania (URP), lepszej obsługi grafiki Vulkan i ulepszonych profili kompilacji.

Oto kilka przykładowych projektów, które pomogą Ci zorientować się w możliwościach:

Podstawowa konfiguracja: fundament programowania

Wymagania i instalacja Unity 6

Do utworzenia aplikacji potrzebujesz Unity 6, ponieważ starsze wersje nie obsługują Androida XR. Najpierw zainstaluj Unity Hub, a potem Unity 6 z modułem Android Build Support, wykonując te czynności.

unity6.png

Profile kompilacji Androida XR: uproszczona konfiguracja

Profile kompilacji Unity to komponenty projektu, które przechowują ustawienia i konfiguracje specyficzne dla platformy. Zamiast ręcznie konfigurować 15–20 różnych ustawień w wielu menu, możesz użyć profilu kompilacji, aby zrobić to automatycznie.
Możesz tworzyć własne profile kompilacji, ale na razie zalecamy korzystanie z utworzonego przez nas profilu kompilacji Androida XR.

Aby wybrać profil kompilacji, w projekcie Unity kliknij kolejno File > Build Profile (Plik > Profil kompilacji). Pełne instrukcje znajdziesz na stronie Tworzenie aplikacji na Androida XR.

Jeśli wprowadzisz własne zmiany, możesz utworzyć nowy profil kompilacji, aby udostępnić go zespołowi. Dzięki temu zapewnisz spójne wrażenia podczas tworzenia w każdym przypadku.

buildprofiles.png

Po wykonaniu tych czynności możesz skompilować i uruchomić pakiet APK na urządzeniach z Androidem XR.

Interfejs API grafiki: dlaczego Vulkan jest ważny

Po skonfigurowaniu projektu Unity z profilem kompilacji Androida XR zalecamy najpierw sprawdzenie, czy Vulkan jest ustawiony jako interfejs API grafiki. Android XR to platforma oparta przede wszystkim na Vulkanie. W marcu 2025 r. Google ogłosił, że Vulkan jest teraz oficjalnym interfejsem API grafiki dla Androida. To nowoczesny interfejs API grafiki niskiego poziomu, który pomaga programistom maksymalizować wydajność nowoczesnych procesorów graficznych i odblokowywać funkcje zaawansowane, takie jak śledzenie promieni i wielowątkowość, aby uzyskać realistyczne i wciągające efekty wizualne w grach.

Te standardy zapewniają najlepszą zgodność z dotychczasowymi aplikacjami oraz ułatwiają przenoszenie aplikacji i zmniejszają związane z tym problemy i koszty. Umożliwia to włączenie zaawansowanych funkcji Androida XR, takich jak URP Application Space Warprenderowanie z ogniskowaniem

Unity 6 automatycznie obsługuje Vulkan, więc gdy używasz profilu kompilacji Android XR, Unity skonfiguruje Vulkan jako interfejs API grafiki. Dzięki temu uzyskasz dostęp do wszystkich zaawansowanych funkcji Androida XR bez konieczności ręcznej konfiguracji.

Ustawienia interfejsu API grafiki możesz sprawdzić, klikając kolejno „Edytuj” > „Ustawienia projektu” > „Odtwarzacz” > „Karta Android” > „Inne ustawienia” > „Interfejsy API grafiki”.

appentrypoint.png

Informacje o ekosystemie pakietów

W Unity możesz używać 2 różnych pakietów dla Androida XR. Pierwszy sposób to użycie rozszerzeń Androida XR dla Unity, a drugi to użycie pakietu Unity OpenXR: Android XR.

Może się to wydawać tym samym, ale posłuchaj.

Pakiet Unity OpenXR: Android XR to oficjalny pakiet Unity do obsługi Androida XR. Zapewnia większość funkcji Androida XR, które są dostępne w standardach OpenXR. Umożliwia też integrację z AR Foundation na potrzeby funkcji rzeczywistości mieszanej. Główną zaletą korzystania z pakietu Unity OpenXR: Android XR jest to, że oferuje on ujednolicony interfejs API do obsługi urządzeń XR.


Android XR Extensions for Unity to pakiet XR od Google zaprojektowany specjalnie do tworzenia aplikacji na urządzenia z Androidem XR. Uzupełnia pakiet Unity OpenXR o dodatkowe funkcje, takie jak tryby mieszania środowiska, siatka sceny, śledzenie obrazu i śledzenie ciała. W zamian możesz tworzyć aplikacje tylko na urządzenia z Androidem XR.


Wybór zależy od Twoich konkretnych potrzeb, ale ogólnie zalecamy korzystanie z Unity OpenXR: Android XR, ponieważ zapewnia to znacznie większą elastyczność w zakresie urządzeń, z którymi Twoja aplikacja będzie zgodna. Następnie, w zależności od wymagań aplikacji, możesz dodać rozszerzenia Androida XR dla Unity.

Jak instalować pakiety

Aby dodać nowy pakiet, otwórz projekt w Unity i wybierz kolejno „Window” (Okno) > „Package Management” (Zarządzanie pakietami) > „Package Manager” (Menedżer pakietów).

Tutaj możesz zainstalować te pakiety na karcie „Rejestr Unity”:

packagemanager.png

Pakiet Android XR dla Unity możesz zainstalować przez GitHub. W tym celu kliknij ikonę ➕, wybierz „Install package from git URL” (Zainstaluj pakiet z adresu URL Git), a następnie wpisz „https://github.com/android/android-xr-unity-package.git”.

packagemanager2.png

Wymagane funkcje OpenXR

Po zainstalowaniu potrzebnych pakietów włączmy niektóre podstawowe funkcje, aby projekt działał.

Możesz włączyć ustawienie OpenXR dla Androida: „Edytuj” –> „Ustawienia projektu” –> „Zarządzanie wtyczkami XR” –> kliknij Androida i włącz OpenXR

xrpluginmgmt.png

Następnie musimy włączyć obsługę „Androida XR”. Inne funkcje OpenXR omówimy w miarę potrzeb. Na razie wystarczy, że włączysz obsługę Androida XR.

Urządzenie wejściowe

Android XR obsługuje wprowadzanie danych za pomocą dłoni, głosu, śledzenia wzroku, klawiatury i kontrolerów. Zalecamy zainstalowanie pakietów XR Interaction ToolkitXR Hands, ponieważ zawierają one najlepsze gotowe elementy do rozpoczęcia pracy. Korzystając z tych gotowych elementów, będziesz mieć wszystko, czego potrzebujesz do obsługi rąk i kontrolerów w aplikacji.

xrinteractiontoolkit.png

Po zainstalowaniu obu pakietów narzędzi XR Hands i XR Interactive zalecam zaimportowanie zasobów startowych i demonstracji interakcji z dłońmi. Następnie musisz włączyć profile Hand InteractionKhronos Simple Controller oraz funkcje Hand Tracking Subsystem i Meta Hand Tracking Aim.

Aby edytować te ustawienia, kliknij Edytuj > Ustawienia projektu > Zarządzanie wtyczkami XR > OpenXR.

profiles.png

Zalecamy też użycie prefabrykatu Unity XR Origin, który reprezentuje pozycję i orientację użytkownika w przestrzeni XR. Zawiera on zestaw kamer i komponenty śledzące potrzebne do renderowania środowiska XR z odpowiedniego punktu widzenia.

Najprostszym sposobem dodania tego prefabrykatu jest zaimportowanie go z demonstracji integracji dłoni, którą zaimportowaliśmy wcześniej. Znajdziesz ją tutaj: „Hands Integration Toolkit” (Zestaw narzędzi do integracji dłoni) > „Hand Interaction” (Interakcja z dłońmi) > „Prefabs” (Prefabrykaty) > „XR Origin”.

prefabs.png

Zalecam używanie tego prefabrykatu zamiast opcji „XR Origin” w obiektach gry, ponieważ korzysta on z XR Input Modality Manager, który automatycznie przełącza się między dłońmi użytkownika a kontrolerami. Zapewni to najlepsze rezultaty podczas przełączania się między dłońmi a kontrolerami.

Prywatność i uprawnienia: budowanie zaufania użytkowników

Niezależnie od tego, co stworzysz, musisz uzyskać od użytkowników uprawnienia w czasie działania. Dzieje się tak, ponieważ rozpoznawanie scen, śledzenie wzroku, śledzenie twarzy i śledzenie rąk zapewnia dostęp do danych, które mogą być bardziej wrażliwe dla użytkownika.

Te funkcje zapewniają dostęp do bardziej szczegółowych danych osobowych niż tradycyjne aplikacje na komputery i urządzenia mobilne, dlatego uprawnienia w czasie działania aplikacji zapewniają użytkownikom pełną kontrolę nad tym, jakie dane chcą udostępniać. Aby zachować zgodność z zasadami bezpieczeństwa i prywatności Androida, Android XR ma uprawnienia do każdej z tych funkcji.

Jeśli na przykład używasz pakietu XR Hands do niestandardowych gestów dłonią, musisz poprosić o uprawnienie do śledzenia rąk (patrz poniżej), ponieważ ten pakiet musi śledzić wiele informacji o dłoniach użytkownika. Obejmuje to m.in. śledzenie pozycji stawów dłoni oraz prędkości kątowych i liniowych.

Uwaga: pełną listę rozszerzeń, które wymagają uprawnień, znajdziesz na stronie dla deweloperów XR.

  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

Poprawianie jakości obrazu za pomocą warstw kompozycji

Warstwa kompozycji to zalecany sposób renderowania elementów interfejsu. Umożliwiają one wyświetlanie elementów w znacznie wyższej jakości w porównaniu ze standardowym potokiem renderowania Unity, ponieważ wszystko jest renderowane bezpośrednio do kompozytora platformy.

Jeśli na przykład wyświetlasz tekst, standardowe renderowanie w Unity może powodować rozmycie tekstu, miękkie krawędzie i artefakty wizualne. W przypadku warstw kompozycji tekst będzie wyraźniejszy, kontury ostrzejsze, a ogólne wrażenia lepsze.


Oprócz tekstu renderuje też filmy, obrazy i elementy interfejsu w znacznie wyższej jakości. Jest to możliwe dzięki natywnej obsłudze warstw kompozytora środowiska wykonawczego.

Aby włączyć warstwy kompozycji, otwórz Menedżera pakietów, wybierz „Rejestr Unity”, a następnie zainstaluj „Warstwy kompozycji XR”.

Tworzenie i uruchamianie

Po zainstalowaniu pakietów OpenXR i włączeniu funkcji możesz teraz utworzyć gotowy element do obsługi ruchu rąk i głowy, a następnie skompilować scenę i wdrożyć ją bezpośrednio na goglach w celu przetestowania.

Co dalej: rozwijanie umiejętności

Gdy skonfigurujesz już środowisko programistyczne Androida XR i poznasz najważniejsze pojęcia, możesz przejść do kolejnych kroków, aby kontynuować przygodę z programowaniem w XR:

Niezbędne materiały do dalszej nauki:

Przykładowe projekty do zbadania:

Autor:

Czytaj dalej