Table of Contents

Class MotionTrackerFrameSource

Namespace
easyar
Assembly
EasyAR.Sense.dll

Steuert das easyar.MotionTrackerCameraDevice in der Szene, bietet Funktionserweiterungen in der Unity-Umgebung.

Diese Frame-Quelle ist ein Bewegungsverfolgungsgerät, das in der ARSession Bewegungsdaten ausgibt.

public class MotionTrackerFrameSource : FrameSource
Vererbung
MotionTrackerFrameSource
Geerbte Mitglieder

Eigenschaften

Camera

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Auf Desktop-Geräten oder Mobiltelefonen repräsentiert diese Kamera dasCamera in der virtuellen Welt, das dem realen Kameragerät in der physischen Umgebung entspricht. Ihre Projektionsmatrix und Position entsprechen der echten Kamera und werden von EasyAR gesteuert. Auf einem Head-Mounted-Display dient diese Kamera nur dazu, einige Diagnosetexte vor den Augen anzuzeigen, nicht zum Rendern des Bildes. Die Kamera wird auch nicht von EasyAR gesteuert.

protected override Camera Camera { get; }

CameraCandidate

Alternative zu Camera, nur wirksam, wenn Unity XR Origin nicht verwendet wird. Falls nicht gesetzt, wird Camera.main verwendet.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird während der gesamten Lebensdauer desARSession abgerufen.

Ob die Kameraframe-Eingabe begonnen hat.

protected override bool CameraFrameStarted { get; }

DesiredFocusMode

Gewünschter Fokusmodus. Änderungen sind nur wirksam, wenn sie vor dem DeviceOpened-Ereignis oder OnEnable vorgenommen werden.

Hinweis: Aufgrund von Hardware- oder Systembeschränkungen kann der Fokusschalter auf einigen Geräten unwirksam sein.

public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }

DesiredFrameRate

Gewünschte Geräte-Bildwiederholrate. Änderungen sind nur wirksam, wenn sie vor dem DeviceOpened-Ereignis oder OnEnable vorgenommen werden.

public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }

DesiredMinQualityLevel

Gewünschte minimal zulässige Qualitätsstufe. Änderungen sind nur wirksam, wenn sie vor Assemble() vorgenommen werden.

public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }

DesiredResolution

Gewünschte Auflösung. Änderungen sind nur wirksam, wenn sie vor dem DeviceOpened-Ereignis oder OnEnable vorgenommen werden.

Wenn die Bildgröße während der Aufnahme mit FrameRecorder geändert wird, werden die Aufnahmedaten nicht mehr aktualisiert. Die Aufnahme muss geschlossen und neu gestartet werden.

public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }

DesiredTrackingMode

Gewünster Verfolgungsmodus. Änderungen sind nur wirksam, wenn sie vor dem Start der Session vorgenommen werden.

public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }

DeviceCameras

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird abgerufen, wennCameraFrameStarted wahr ist.

Stellt die Gerätekamera bereit, die die Kameraframedaten liefert. Wenn die Kameraframedaten von mehreren Kameras stammen, müssen alle Kameras in der Liste enthalten sein.

Stellen Sie sicher, dass der Wert korrekt ist, wennCameraFrameStarted wahr ist.

protected override List<FrameSourceCamera> DeviceCameras { get; }

DeviceQualityLevel

Ruft die Qualität der Bewegungsverfolgung auf dem Gerät ab. Kombiniert mit dem Anwendungsszenario kann dieser Wert verwendet werden, um zu entscheiden, ob die Bewegungsverfolgung gestartet werden soll.

public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }

Display

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Stellt Systemanzeigeinformationen bereit. Sie könnenDefaultSystemDisplay oderDefaultHMDDisplay verwenden, um Standardanzeigeinformationen zu erhalten.

protected override IDisplay Display { get; }

FrameRateRange

Bildwiederholrate-Bereich. Nur verfügbar, wenn Opened true ist.

public Vector2 FrameRateRange { get; }

IsAvailable

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Ob die aktuelle Frame-Quelle verfügbar ist.

Wenn der Wert null ist, wirdCheckAvailability() aufgerufen und der Wert wird nach Abschluss derCoroutine abgerufen.

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Wenn der Wert wahr ist, aktualisiert die Sitzung die Transformation der Kamera und rendert das Kamerabild.

Bei der Erstellung einer Head-Mounted-Display-Erweiterung sollte dies falsch sein. Sie sollten die 3D-Kamera in der Szene vollständig kontrollieren. Sie sollten das Kamera-Rendering handhaben, insbesondere im VST-Modus.

protected override bool IsCameraUnderControl { get; }

IsHMD

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Ob die aktuelle Frame-Quelle ein Head-Mounted-Display ist. Wenn es sich um ein Head-Mounted-Display handelt, werden Diagnoseinformationen auf einer 3D-Tafel vor der Kamera angezeigt.

Einige Frame-Filter verhalten sich auf dem Gerät unterschiedlich.

protected override bool IsHMD { get; }

LocalPointCloud

Aktuelle Positionsinformationen der Punktwolken-Daten. Nur verfügbar, wenn Opened true ist.

public List<Vector3> LocalPointCloud { get; }

Opened

Ob die Kamera geöffnet ist.

public bool Opened { get; }

Size

Aktuelle Bildgröße. Nur verfügbar, wenn sowohl Opened als auch MonoBehaviour.enabled true sind.

public Vector2Int Size { get; }

enabled

Startet/Stoppt das Erfassen des Videostreams während der Laufzeit desARSession. Nach dem Start der Sitzung beginnt die Erfassung nur, wennMonoBehaviour.enabled wahr ist.

public bool enabled { get; set; }

Methoden

Close()

Schließt das Gerät.

public void Close()

HitTestAgainstHorizontalPlane(Vector2)

Führt einen Hit-Test auf den horizontalen Ebenen durch, die in Echtzeit im aktuellen Sichtfeld erkannt werden. Nach dem Tippen auf eine horizontale Ebene wird die Positionskoordinate des 3D-Punkts auf dieser Ebene zurückgegeben, der dem Hit-Test-Strahl am nächsten liegt. pointInView muss auf [0, 1]^2 normalisiert werden.

public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)

Parameter

pointInView

HitTestAgainstPointCloud(Vector2)

Führt einen Hit-Test in der aktuellen Punktwolke durch und erhält die Positionskoordinate des nächsten 3D-Punkts entlang eines Strahls von nah nach fern von der Kamera. pointInView muss auf [0, 1]^2 normalisiert werden.

public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)

Parameter

pointInView

OnSessionStart(ARSession)

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desStartSession()-Prozesses abgerufen.

Behandelt den Start der Sitzung, wenn diese Frame-Quelle inAssembly eingebunden wurde. Diese Methode ist für die verzögerte Initialisierung vorgesehen. Hier können AR-spezifische Initialisierungsarbeiten durchgeführt werden.

protected override void OnSessionStart(ARSession session)

Parameter

session

OnSessionStop()

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird währendStopSession(bool) oder anderen Sitzungsstopp-/Beschädigungsprozessen abgerufen.

Behandelt das Stoppen der Sitzung, wenn diese Frame-Quelle inAssembly eingebunden wurde. Mit dieser Methode können Ressourcen, die währendStartSession() und des Sitzungsbetriebs erstellt wurden, zerstört und der interne Status wiederhergestellt werden. Diese Methode wird garantiert aufgerufen, bevor die Sitzung zerstört wird. Wenn die Frame-Quelle vor der Sitzung zerstört wird, wird sie nicht aufgerufen und die Sitzung wird beschädigt.

protected override void OnSessionStop()

Open()

Öffnet das Gerät. Wenn Open() und Close() nicht manuell aufgerufen werden, wird es nach dem Start der ARSession automatisch Open().

public void Open()

Ereignisse

DeviceClosed

Ereignis beim Schließen des Geräts.

public event Action DeviceClosed

DeviceOpened

Ereignis beim Öffnen des Geräts, der boolesche Wert gibt an, ob es erfolgreich war.

public event Action<bool, PermissionStatus, string> DeviceOpened