ARCore für Jetpack XR
Letzte Aktualisierung | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
12. Dezember 2024 | - | – | - | 1.0.0-alpha01 |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von ARCore für Jetpack XR hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:
Cool
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha01") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.0
Version 1.0.0-alpha01
12. Dezember 2024
androidx.xr.arcore:arcore-* 1.0.0-alpha01
wird veröffentlicht.
Funktionen der Erstversion
Die ARCore for Jetpack XR-Bibliothek wurde von der ARCore-Bibliothek inspiriert und bietet Funktionen zum Einbetten digitaler Inhalte in die reale Welt. Diese Bibliothek umfasst Bewegungsverfolgung, persistente Anker, Treffertests und die ebenene Identifikation mit semantischen Labels (z. B. Boden, Wände und Tischplatten). Weitere Informationen zur Arbeit mit ARCore für Jetpack XR finden Sie im Entwicklerleitfaden.
Session
: ARCore für Jetpack XR nutzt die Jetpack XR-Laufzeit, um seine Funktionen zu ermöglichen. Sie verwenden eine Sitzung, um mit den meisten ARCore for Jetpack XR APIs zu interagieren. Lesen Sie sich daher die entsprechende Dokumentation durch.Plane
: Mit Ebenen die Welt um Sie herum besser verstehen. Jede Ebene hat einenLabel
, der sie semantisch beschreibt. Mitsubscribe
werden Sie über die zuletzt erkannten Flugzeuge benachrichtigt. Mitstate
werden Sie über Änderungen an einem bestimmten Flugzeug benachrichtigt.Anchor
: Eine Verknüpfung zwischen einem virtuellen Objekt und einem Ort in der realen Welt. Anker können an einem bestimmten Ort im Raum (mitcreate
) oder an einemTrackable
(mitcreateAnchor
) befestigt werden.Anker können sitzungsübergreifend wiederverwendet werden. Sie können sie mit
persist
speichern, mitgetPersistedAnchorUuids
aufzählen und mitload
abrufen.unpersist
Sie, sobald sie nicht mehr verwendet werden.Anker sind zwischen ARCore für Jetpack XR und Jetpack SceneCore interoperabel. Sie können einen
AnchorEntity
mit einem Anker erstellen. Wenn Sie bereits eine AnchorEntity haben, können Sie mitgetAnchor
den zugehörigen Anker abrufen.Bieten Sie mit
hitTest
natürliche Nutzerinteraktionen. Bei einem HitTest wird einRay
verwendet, um zu ermitteln, mit welchen Inhalten er sich überschneidet, und an dieser Stelle einenAnchor
zu erstellen. Sie können einen HitTest von einemInputEvent
aus durchführen.
Bekannte Probleme
Zwischen dem Aufruf von
unpersist
und dem Entfernen der UUID aus den vongetPersistedAnchorUuids
zurückgegebenen Ergebnissen kann es zu einer Verzögerung kommen.Mit
create
wird nicht geprüft, ob das System genügend Ressourcen hat, um neue Anker zurückzugeben. Das Erstellen einer übermäßigen Anzahl von Ankern kann zu einem Absturz führen.Das Speichern eines Ankers, der zuvor gespeichert und wieder gelöscht wurde, wird derzeit nicht unterstützt.
Die Verwendung im Emulator wird unterstützt, das Verhalten ist jedoch möglicherweise nicht so stabil wie bei der Ausführung auf einem echten Gerät. Insbesondere Aufrufe von
create
können mit einem Native-Code-Fehler fehlschlagen und die Aktivität sofort beenden.Unter bestimmten Umständen wird beim Aufruf von
persist
möglicherweise fälschlicherweise eineRuntimeException
mit der Meldung „Der Anker wurde nicht beibehalten“ ausgegeben. In diesem Fall wird die Funktion trotzdem ausgeführt und der Anker beibehalten. Wir empfehlen als Problemumgehung, den Aufruf vonpersist
in einentry
-Block einzufügen.