Erstellen und konfigurieren einer AR-Session
Um AR in Unity zu verwenden, müssen Sie zuerst eine AR-Session in der Szene erstellen und konfigurieren. Dieser Artikel beschreibt mehrere Hauptmethoden zum Erstellen und Konfigurieren einer AR-Session. Nach erfolgreicher Erstellung der Session sehen Sie in der Hierarchy-Ansicht typischerweise folgende Struktur:

Voraussetzungen
- Verstehen Sie die Grundkonzepte, Komponenten und Arbeitsabläufe durch Einführung in ARSession.
Erstellen einer Session mit Standardkonfiguration
Klicken Sie mit der rechten Maustaste auf einen leeren Bereich in der Hierarchy-Ansicht und wählen Sie EasyAR Sense > [ AR-Funktion ] > AR Session ([ Funktion ] Preset), um eine vorkonfigurierte Session zu erstellen. Die Session enthält voreingestellte frame source- und frame filter-Komponenten für diese Funktion.
In Skripten können Sie ARSessionFactory.CreateSession(ARSessionFactory.ARSessionPreset, ARSessionFactory.Resources) verwenden.
Zum Beispiel: EasyAR Sense > Image Tracking > AR Session (Image Tracking Preset) erstellt eine Session für Bildverfolgung.

Skriptcode:
ARSessionFactory.CreateSession(ARSessionFactory.ARSessionPreset.ImageTracking);
Hinweis: Bei ARSessionFactory.ARSessionPreset.SparseSpatialMapBuilder und ARSessionFactory.ARSessionPreset.DenseSpatialMapBuilder müssen Ressourcenparameter übergeben werden:
ARSessionFactory.CreateSession(ARSessionFactory.ARSessionPreset.SparseSpatialMapBuilder, new ARSessionFactory.Resources { SparseSpatialMapPointCloudMaterial = PointCloudMaterial });
Für Editor-Nutzung:
ARSessionFactory.CreateSession(ARSessionFactory.ARSessionPreset.SparseSpatialMapBuilder, ARSessionFactory.Resources.EditorDefault());
Alle vordefinierten Sessions finden Sie unter EasyAR Sense > AR Session (Preset) > **.

Anmerkung
Mehrere aktive Sessions im selben Szenario führen zu Konflikten. Maximal eine Session sollte aktiviert sein (GameObject.activeInHierarchy == true).
Komponenten hinzufügen
frame source- und frame filter-Komponenten können nach der Erstellung hinzugefügt oder entfernt werden.
Wählen Sie AR Session (EasyAR) in der Hierarchy-Ansicht, rechtsklicken Sie und wählen Sie EasyAR Sense > [ AR-Funktion ] > **.
In Skripten: ARSessionFactory.AddFrameSource<Source>(GameObject, bool) für frame sources oder ARSessionFactory.AddFrameFilter<Filter>(GameObject, ARSessionFactory.Resources) für frame filters.
Beispiel: EasyAR Sense > Image Tracking > Frame Filter : Image Tracker fügt einen Bildverfolger hinzu.

Skriptcode:
ARSessionFactory.AddFrameFilter<ImageTrackerFrameFilter>(session);
Vorsicht
Komponenten müssen vor assemble hinzugefügt werden. Nach Beginn von assemble führt jede Änderung zum Broken-Status.
Für SparseSpatialMapBuilderFrameFilter und DenseSpatialMapBuilderFrameFilter Ressourcen angeben:
ARSessionFactory.AddFrameFilter<SparseSpatialMapBuilderFrameFilter>(session, new ARSessionFactory.Resources { SparseSpatialMapPointCloudMaterial = PointCloudMaterial })
Editor-Standard:
ARSessionFactory.AddFrameFilter<SparseSpatialMapBuilderFrameFilter>(session, ARSessionFactory.Resources.EditorDefault());
Verwenden Sie ARSessionFactory.SetupFrameFilters(List<GameObject>, ARSessionFactory.ARSessionPreset) zur Parameteranpassung:
var filter = ARSessionFactory.AddFrameFilter<ImageTrackerFrameFilter>(session);
ARSessionFactory.SetupFrameFilters(new() { filter }, ARSessionFactory.ARSessionPreset.ImageTrackingMotionFusion);
Komponenten entfernen
Löschen Sie Komponenten in der Hierarchy-Ansicht mit Delete oder per Destroy in Skripten.
Anmerkung
Deaktivieren (SetActive(false)) hat denselben Effekt wie Löschen.
Beispiel: Löschen Sie Image Tracker mit Delete.

Vorsicht
Entfernen muss vor assemble erfolgen. Spätere Änderungen führen zu Broken.
Einfluss der Komponentenreihenfolge
Die Reihenfolge der frame filter-Knoten hat keine Auswirkung.
Die Reihenfolge der frame source-Knoten bestimmt die Auswahl während assemble. Nur die erste verfügbare frame source in der Transform-Reihenfolge wird verwendet.
Anmerkung
Die Reihenfolge muss vor assemble festgelegt werden. Spätere Änderungen sind unwirksam.
[Optional] Freie Session-Erstellung
Erstellen Sie eine leere Session mit EasyAR Sense > AR Session (Preset) > AR Session (Empty).
Skriptcode:
ARSessionFactory.CreateSession();
Fügen Sie dann benötigte Komponenten hinzu. Beispiel für Sparse-/Dense-Spatial-Mapping:
var session = ARSessionFactory.CreateSession();
var group = new GameObject("Frame Source Group");
group.transform.SetParent(session.transform, false);
ARSessionFactory.AddFrameSource<XREALFrameSource>(session);
ARSessionFactory.AddFrameSource<AREngineFrameSource>(session);
ARSessionFactory.AddFrameSource<ARCoreFrameSource>(session);
ARSessionFactory.AddFrameSource<ARCoreARFoundationFrameSource>(session);
ARSessionFactory.AddFrameSource<ARKitFrameSource>(session);
ARSessionFactory.AddFrameSource<ARKitARFoundationFrameSource>(session);
ARSessionFactory.AddFrameSource<VisionOSARKitFrameSource>(session);
ARSessionFactory.AddFrameSource<MotionTrackerFrameSource>(session);
List<GameObject> filters = new();
filters.Add(ARSessionFactory.AddFrameFilter<SparseSpatialMapBuilderFrameFilter>(session, resources));
filters.Add(ARSessionFactory.AddFrameFilter<DenseSpatialMapBuilderFrameFilter>(session, resources));
ARSessionFactory.SetupFrameFilters(filters, ARSessionFactory.ARSessionPreset.SparseSpatialMapBuilder);
ARSessionFactory.SetupFrameFilters(filters, ARSessionFactory.ARSessionPreset.DenseSpatialMapBuilder);
Ergebnisstruktur:

Nächste Schritte
Steuerung
Ergebnisse
Referenz