Class ARSession
- Namespace
- easyar
- Assembly
- EasyAR.Sense.dll
Steuert die AR-Sitzung in der Szene. Eine Sitzung umfasst eine Reihe von Komponenten, die zu einemARAssembly zusammengebaut sind und den gesamten Datenfluss des Lebenszyklus kontrollieren. Diese Komponente ist der Einstiegspunkt für AR. Es darf nicht mehrere aktive Instanzen gleichzeitig vorhanden sein.
Alle Funktionen der EasyAR-Komponenten können erst nachStartSession() verwendet werden.
Die relative Transformation zwischenCamera und einigen AR-Komponenten wird von der Sitzung gesteuert. Ein Objekt wird alsCenterObject bezeichnet und bewegt sich nicht in der Szene, während sich andere Objekte relativ zu diesemCenterObject bewegen. Dieses Objekt wird basierend auf dem Wert vonCenterMode ausgewählt. Weitere Details finden Sie in der Beschreibung vonARSession.ARCenterMode.
[DefaultExecutionOrder(-2147483648)]
[DisallowMultipleComponent]
[RequireComponent(typeof(EasyARController), typeof(DiagnosticsController))]
[RequireComponent(typeof(FrameRecorder), typeof(FramePlayer), typeof(CameraImageRenderer))]
public class ARSession : MonoBehaviour
- Vererbung
-
ARSession
Felder
AutoStart
Startet die Sitzung automatisch beiMonoBehaviour.Start. Wenn auf false gesetzt, müssen SieStartSession() manuell aufrufen, um die Sitzung zu starten.
[SerializeField]
[HideInInspector]
public bool AutoStart
CenterMode
AR-Zentrumsmodus. Kann jederzeit geändert werden und wirkt sofort. Wenn der angegebene Modus nicht verfügbar ist, wird er automatisch in einen verfügbaren Modus geändert.
[SerializeField]
[HideInInspector]
public ARSession.ARCenterMode CenterMode
HorizontalFlip
Horizontales Spiegel-Rendering-Modus. Kann jederzeit geändert werden und wirkt sofort. Nur bei Verwendung von Bild- oder Objekt-Tracking verfügbar.
[SerializeField]
[HideInInspector]
public ARSession.FlipOptions HorizontalFlip
Eigenschaften
AssembleOptions
Zusammenbau-Optionen der Sitzung, müssen vorAssemble() (wenn nicht vorher aufgerufen, wirdStartSession() es implizit aufrufen) festgelegt werden.
public AssembleOptions AssembleOptions { get; }
Assembly
Die Zusammenstellung der AR-Komponenten.
public ARAssembly Assembly { get; }
AvailableCenterMode
Für die aktuelle Sitzung verfügbare Zentrumsmodi.
public IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
CenterObject
Das von dieser Sitzung im aktuellen Frame verwendete Zentrumsobjekt.
Dieses Objekt repräsentiert ein Objekt oder dessen Elternknoten, das sich im Unity-Raum nicht bewegt. Es könnteOrigin,Camera oder ein bestimmtes `target` sein. `Target` kann ein Objekt sein, das eineTargetController- oderBlockRootController-Komponente enthält. Bei Verwendung von Sparse Spatial Map und EasyAR Mega ist das tatsächliche Zentrum-GameObject das lokalisierten Map- oder Block-Objekt unter dem Root-Knoten,CenterObject ist der Elternknoten dieses Objekts. Weitere Details finden Sie in der Beschreibung vonARSession.ARCenterMode.
public GameObject CenterObject { get; }
Diagnostics
Sitzungsdiagnosekomponente.
public DiagnosticsController Diagnostics { get; }
Origin
Der Ursprung der Sitzung während der Ausführung einer Bewegungsverfolgungsfunktion.
Es wird automatisch aus der Szene ausgewählt oder von EasyAR oder einer Drittanbieter-Frame-Source-Erweiterung erstellt, falls nicht vorhanden. Bei Verwendung der integrierten Frame-Source wird, wenn XROrigin des Unity-XR-Frameworks existiert, dieses ausgewählt. Wenn das AR Foundation-Paket nicht vorhanden ist, wird nur ein XR Origin mit der Standardstruktur ausgewählt.
public GameObject Origin { get; }
Report
Sitzungsbericht. Er ist nach Abschluss des Zusammenbaus verfügbar und wird bei Änderungen des Sitzungsstatus aktualisiert. Dient zur Anzeige detaillierter Informationen über Sitzungsfehler oder Komponentenverfügbarkeit.
public SessionReport Report { get; }
SpecificTargetCenter
Manuell festgelegtes Zentrumsobjekt. WennCenterMode == SpecificTarget, wirdCenterObject auf dieses Objekt gesetzt. Kann jederzeit geändert werden und wirkt sofort.
Dieses Objekt muss eineTargetController- oderBlockRootController-Komponente enthalten.
public GameObject SpecificTargetCenter { get; set; }
State
Status der aktuellen Sitzung.
public ARSession.SessionState State { get; }
TrackingStatus
Der Bewegungsverfolgungsstatus während der Ausführung einer Bewegungsverfolgungsfunktion.
public Optional<MotionTrackingStatus> TrackingStatus { get; }
enabled
Aktiviert/Deaktiviert die Ausgabe während der Sitzungslaufzeit. Im deaktivierten Zustand gibt die Sitzung keine Ausgaben aus, Kamerabilder (falls von EasyAR gesteuert) und die Transformation aller Sitzungsobjekte werden nicht aktualisiert.
public bool enabled { get; set; }
Methoden
Assemble()
Baut die Sitzung mitAssembleOptions zusammen. Wenn aufgerufen, wird es automatisch inStartSession() aufgerufen.
public IEnumerator Assemble()
ImageCoordinatesFromScreenCoordinates(Vector2)
Transformiert vom Bildschirmkoordinatensystem ([0, 1]^2) in das Bildkoordinatensystem ([0, 1]^2).pointInView muss auf [0, 1]^2 normalisiert werden. Auf Headsets nicht verfügbar.
public Optional<Vector2> ImageCoordinatesFromScreenCoordinates(Vector2 pointInView)
Parameter
pointInView
StartSession()
Startet die Sitzung. WennAutoStart true ist, wird es automatisch inMonoBehaviour.Start aufgerufen.
public void StartSession()
StopSession(bool)
Stoppt die laufende Sitzung. Alle Transform- und Bild-Rendering-Aktualisierungen werden gestoppt. Sie können die Anzeige des letzten Frames beim Stoppen beibehalten, dies funktioniert jedoch nur, wenn EasyAR das Bild-Rendering steuert (nicht bei AR Foundation oder Headsets).
public void StopSession(bool keepLastFrame)
Parameter
keepLastFrame
Ereignisse
AssembleUpdate
Ereignis bei Aktualisierung der Sitzungs-Assemble(). Dieses Ereignis wird während einesAssemble() (wenn nicht vorher aufgerufen, wirdStartSession() es implizit aufrufen) ein- bis zweimal ausgelöst. Das erste Mal erfolgt es, wenn Assemble abgeschlossen ist. Wenn die Gerätelistenaktualisierung zum Zeitpunkt des Assemble-Abschlusses bereits abgeschlossen ist, erfolgt kein zweiter Aufruf, andernfalls erfolgt der zweite Aufruf, wenn die Gerätelistenaktualisierung abgeschlossen ist.
public event Action<SessionReport.AvailabilityReport> AssembleUpdate
InputFrameUpdate
Ereignis bei Aktualisierung des Eingabeframes, wird nur ausgelöst, wenn sich der von der Sitzung angezeigteInputFrame ändert. Auf Headsets wird dieses Ereignis nicht empfangen, und wenn ein Durchsichtsbild vorhanden ist, erfolgt dessen Rendering durch das Gerät.
public event Action<InputFrame> InputFrameUpdate
PostSessionUpdate
Ereignis bei Abschluss der Sitzungsaktualisierung, dessen Frequenz mit der vonMonoBehaviour.Update übereinstimmt (auf Headsets muss der Erweiterungsautor dies korrekt implementieren). Wenn dieses Ereignis ausgelöst wird, sind alle von EasyAR kontrollierten Transform-Änderungen innerhalb dieses Frames abgeschlossen.
public event Action PostSessionUpdate
StateChanged
Ereignis bei Änderung des Sitzungs-State.
public event Action<ARSession.SessionState> StateChanged