EasyAR Headset-Unterstutzung
In diesem Artikel erfahren Sie, wie Sie mit der Vorlage des Headset-Erweiterungspakets von EasyAR Sense Unity Plugin ein Erweiterungspaket fur Headsets entwickeln.
Vor dem Start
Bevor Sie mit der Entwicklung beginnen, sollten Sie wissen, wie EasyAR Sense Unity Plugin verwendet wird.
- Schnellstart
- Fuhren Sie die Beispiele AR Session, das Image-Tracking-Beispiel
ImageTracking_Targetsund das Dense-Spatial-Map-BeispielSpatialMap_Dense_BallGameaus. Das Laufverhalten ist auf Smartphone und Headset ahnlich.
Fur die Entwicklung von Headset-Plugins mussen Sie einige grundlegende Funktionen kennen:
- Verstehen Sie AR Session
- Verstehen Sie Frame Source und Externe Frame Source
Außerdem sollten Sie mit der Entwicklung eines Unity-Pakets vertraut sein.
Gerate fur AR/MR vorbereiten
Bewegungs-Tracking/VIO vorbereiten
Stellen Sie sicher, dass der Tracking-Fehler des Gerats kontrollierbar ist. Einige EasyAR-Funktionen wie Mega konnen den kumulativen Fehler des Gerats bis zu einem gewissen Grad reduzieren, aber grobe lokale Fehler machen den Algorithmus von EasyAR instabil. In der Regel erwarten wir einen VIO-Drift von unter 1 Promille.
Anzeigesystem vorbereiten
Stellen Sie sicher, dass ein virtuelles Objekt mit derselben Grobe und Kontur wie ein reales Objekt im virtuellen Raum so platziert werden kann, dass seine relative Transformation zur virtuellen Kamera der Transformation zwischen dem realen Objekt und dem Gerat entspricht. Dann wird das virtuelle Objekt passend auf dem realen Objekt angezeigt, und auch Bewegung des Gerats oder Kopfdrehungen durfen den Anzeigeeffekt nicht zerstoren. Das Verhalten von Vision Pro kann als Referenz dienen.
Gerate-SDK vorbereiten
Stellen Sie sicher, dass bereits eine API verfugbar ist, die externe Eingangs-Frame-Daten bereitstellen kann. Diese Daten mussen von genau zwei Zeitpunkten im System erzeugt werden; es darf keine Situation geben, in der die Daten nicht ausgerichtet werden konnen.
Vorlage fur Headset-Erweiterung verwenden
Importieren Sie EasyAR Sense Unity Plugin (Paket com.easyar.sense) uber das Package Manager window und die Installation eines lokalen Tarball-Files. Entpacken Sie die Vorlage der Headset-Erweiterung (Paket com.easyar.sense.ext.hmdtemplate) in den Packages-Ordner des Unity-Projekts und benennen Sie den Ordner Samples~ in Samples um.
Danach sollte die folgende Verzeichnisstruktur zu sehen sein:
.
├── Assets
└── Packages
└── com.easyar.sense.ext.hmdtemplate
├── CHANGELOG.md
├── Documentation~
├── Editor
├── LICENSE.md
├── package.json
├── Runtime
└── Samples
└── Combination_BasedOn_HMD
Tipp
Falls erforderlich, konnen Sie EasyAR Sense Unity Plugin und die Headset-Erweiterungsvorlage mit jeder von Unity erlaubten Methode importieren.
Wenn Sie die Vorlage nicht verwenden, konnen Sie stattdessen die Anleitung zum Erstellen eines benutzerdefinierten Unity-Pakets nutzen, um ein neues Paket zu erstellen.
Wenn das Gerate-SDK nicht als Unity-Paket organisiert ist, entpacken Sie die Headset-Erweiterungsvorlage in den Assets-Ordner des Unity-Projekts und entfernen Sie danach package.json sowie alle Dateien mit der Endung .asmdef. Beachten Sie jedoch, dass Nutzer von Gerate-SDK und EasyAR auf diese Weise keine saubere Versionsabhangigkeit erhalten.
Runtime-Eingangserweiterung fertigstellen
Folgen Sie der Methode Image- und Geratbewegungsdaten als Eingabeerweiterung erstellen, passen Sie Runtime/HMDTemplateFrameSource.cs an und vervollstandigen Sie die Eingabeerweiterung fur Headsets. Das ist die wichtigste Entwicklungsarbeit des Erweiterungspakets.
Editor-Menü fertigstellen
Andern Sie den String "HMD Template" in der Klasse MenuItems in den Namen des Gerats. Wenn Sie weitere benutzerdefinierte Editor-Funktionen benotigen, konnen Sie weitere Skripte hinzufugen.
Wenn Entwickler im Hierarchy-Fenster **AR Session (EasyAR)** auswahlen und mit der rechten Maustaste klicken, werden diese Menupunkte angezeigt:
EasyAR Sense>Extensions>Frame Source : [Device Name]: Fugt der aktuellen Session eine Frame Source fur dieses Gerat hinzu.EasyAR Sense>Extensions>Frame Source : [Device Name (keep it only)]: Fugt der aktuellen Session eine Frame Source fur dieses Gerat hinzu und lasst nur diese eine Frame Source bestehen.

Anwendungsbeispiel fertigstellen
Das Beispiel befindet sich unter Samples/Combination_BasedOn_HMD. Einfachheitshalber enthalt die Vorlage keinen Code; alle AR-Funktionen werden uber Szeneninhalte und Konfiguration realisiert.
Inhalte zur Szene hinzufugen, die auf dem Gerat laufen konnen.
Tipp
Falls erforderlich, konnen Sie es auch umgekehrt machen: Verwenden Sie eine Szene, die auf dem Gerat lauffahig ist, und fugen Sie dann EasyAR-Komponenten und weitere Objekte aus der Sample-Szene hinzu.
Objekte anpassen, die unter dem Session-ursprung platziert werden sollen.
Wenn in der Szene ein Session-Ursprung definiert ist, verschieben Sie
EasyARPandaundUIunter den Ursprungs-Knoten.
EasyARPandadient als Referenz fur das Bewegungs-Tracking des Gerats und hilft dabei, die Ursache fur instabiles Tracking zu erkennen.Die Texte in Klammern hinter diesen Objektnamen sind Hinweise fur Entwickler der Erweiterung und konnen geloscht werden:
(Move into Origin if there is any)(Move into Origin if there is any, set constraint source to your rendering camera)
Verhalten der
HUD-Buttons konfigurieren.Setzen Sie die
constraint sourcevonUIauf die virtuelle Kamera, damit dieHUD-Buttons wie erwartet funktionieren.
Raycast-Funktion des
Canvaskonfigurieren.Passen Sie das
Canvasunter demUI-Knoten an und stellen Sie sicher, dass Raycast funktioniert, damit alle UI-Buttons und Schalter wie erwartet arbeiten.Die Vorlage enthalt unter dem
Canvas-Knoten bereits denTracked Device Graphic Raycasteraus dem XR Interaction Toolkit. Nach dem Import des entsprechenden Pakets ist er sichtbar.
Wenn Sie beim Ausfuhren auf dem Gerat das XR Interaction Toolkit nicht verwenden, wird moglicherweise ein Hinweis auf fehlende Skripte angezeigt. Sie konnen diese entfernen und die fur das Gerat benotigte Raycaster-Komponente hinzufugen.

Nachste Schritte
- Bevor Sie die Erweiterung weiter vervollstandigen, sollten Sie zunachst die Eingabeerweiterung laufend verifizieren (bring-up)
- Nach Abschluss aller Schritte konnen Sie das Veroffentlichen des Erweiterungspakets vorbereiten