ARCore w Jetpack XR
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
12 lutego 2025 r. | - | - | - | 1.0.0-alpha02 |
Deklarowanie zależności
Aby dodać zależność od ARCore dla Jetpack XR, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha01") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos w sprawie istniejącego problemu, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.0
Wersja 1.0.0-alpha02
12 lutego 2025 r.
androidx.xr.arcore:arcore:1.0.0-alpha02
został zwolniony. Wersja 1.0.0-alpha02 zawiera te komity.
Nowe funkcje
- Dodano obsługę śledzenia rąk. Aby uzyskać dostęp do informacji o śledzeniu, użyj
Hand.left
iHand.right
. - Interfejsy API, które generują kotwicę (
Anchor.create
,Anchor.load
,Plane.createAnchor
), zwracają terazAnchorCreateResult
i prawidłowo implementująAnchorCreateResourcesExhausted
.
Poprawki błędów
Anchor.detach
nie powoduje już krytycznego błędu z powodu warunków wyścigu z wątkiem aktualizacji sesji.Anchor.create
jest bardziej stabilny podczas uruchamiania na emulatorze.
Wersja 1.0.0-alpha01
12 grudnia 2024 r.
androidx.xr.arcore:arcore-* 1.0.0-alpha01
został zwolniony.
Funkcje dostępne w pierwszej wersji
Biblioteka ARCore dla Jetpacka XR, która powstała na podstawie dotychczasowej biblioteki ARCore, umożliwia łączenie treści cyfrowych ze światem rzeczywistym. Biblioteka ta obejmuje śledzenie ruchu, trwałe kotwy, testowanie uderzeń i identyfikację płaszczyzny za pomocą etykiet semantycznych (np. podłoga, ściany i blaty). Aby dowiedzieć się więcej o ARCore w Jetpack XR, zapoznaj się z przewodnikiem dla programistów.
Session
: ARCore dla Jetpacka XR korzysta z biblioteki Jetpack XR Runtime, aby obsługiwać swoje funkcje. Sesji używa się do interakcji z większą liczbą interfejsów ARCore dla Jetpack XR API, dlatego zapoznaj się z ich dokumentacją.Plane
: użyj samolotów, aby poznać świat wokół siebie. Każdy samolot maLabel
, który opisuje go semantycznie. Możesz użyćsubscribe
, aby otrzymywać powiadomienia o ostatnio wykrytych samolotach, lubstate
, aby otrzymywać powiadomienia o zmianach dotyczących konkretnego samolotu.Anchor
: połączenie między obiektem wirtualnym a lokalizacją w świecie rzeczywistym. Kotwy można przypiąć do określonej lokalizacji w przestrzeni (za pomocącreate
) lub doTrackable
(za pomocącreateAnchor
).Kotwic można używać ponownie w różnych sesjach. Możesz ich używać za pomocą funkcji
persist
(do przechowywania),getPersistedAnchorUuids
(do zliczania) iload
(do pobierania). Gdy nie będziesz już używać tych urządzeń,unpersist
je.Punkty kotwiczenia są kompatybilne między ARCore dla Jetpacka XR i Jetpacka SceneCore. Możesz utworzyć
AnchorEntity
za pomocą zakotwiczenia lub, jeśli masz już AnchorEntity, możesz użyćgetAnchor
, aby pobrać zakotwiczenie.Zapewnij użytkownikom naturalne interakcje za pomocą
hitTest
. Funkcja hitTest używaRay
, aby określić, z czym się przecina, i utworzyćAnchor
z tego miejsca. Rozważ przeprowadzenie testu hitTest z urządzeniaInputEvent
.
Znane problemy
Pomiędzy wywołaniem funkcji
unpersist
a usunięciem z wyników zwracanych przez funkcjęgetPersistedAnchorUuids
identyfikatora UUID może minąć pewien czas.create
nie sprawdza, czy system ma wystarczające zasoby, aby zwrócić nowe kotwy. Utworzenie zbyt dużej liczby kotwic może spowodować awarię.Zachowywanie punktu odniesienia, który został wcześniej zapisany i usuwany, nie jest obecnie obsługiwane.
Aplikacja może być używana w emulatorze, ale jej działanie może nie być tak stabilne jak na rzeczywistym urządzeniu. W szczególności wywołania funkcji
create
mogą zakończyć się błędem kodu natywnego i natychmiast zakończyć działanie.W pewnych okolicznościach podczas wywołania funkcji
persist
może zostać błędnie wyrzucony wyjątekRuntimeException
z komunikatem „An anchor was not persisted” („Nie udało się zapisać kotwicy”). W takich przypadkach funkcja i tak zostanie wykonana, a kotwica zostanie zapisana. Jako rozwiązanie zalecamy umieszczenie wywołania funkcjipersist
w blokutry
.