Class MotionTrackerFrameSource
- Namespace
- easyar
- Assembly
- EasyAR.Sense.dll
Steuert dieeasyar.MotionTrackerCameraDevice in der Szene und bietet Funktionserweiterungen in der Unity-Umgebung.
Diese Framequelle ist ein Bewegungsverfolgungsgerät, das Bewegungsdaten imARSession ausgibt.
public class MotionTrackerFrameSource : FrameSource
- Vererbung
-
MotionTrackerFrameSource
- Geerbte Mitglieder
Eigenschaften
Camera
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird nur währendAssemble() 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 realen Kamera und werden von EasyAR gesteuert. Auf einem Head-Mounted Display dient diese Kamera nur zur Anzeige von Diagnosetext vor den Augen, nicht zum Rendern des Bildes. Die Kamera wird nicht von EasyAR gesteuert.
protected override Camera Camera { get; }
CameraCandidate
Alternative zuCamera, nur gültig, wenn Unity XR Origin nicht verwendet wird. Falls nicht gesetzt, wird Camera.main verwendet.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird während der gesamten Lebensdauer derARSession abgerufen.
Ob die Kameraframe-Eingabe begonnen hat.
protected override bool CameraFrameStarted { get; }
DesiredFocusMode
Erwarteter Fokusmodus. Änderungen sind nur vor demDeviceOpened-Ereignis oder OnEnable wirksam.
Hinweis: Aufgrund von Hardware- oder Systembeschränkungen kann der Fokusschalter auf einigen Geräten unwirksam sein.
public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredFrameRate
Erwartete Gerätebildrate. Änderungen sind nur vor demDeviceOpened-Ereignis oder OnEnable wirksam.
public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }
DesiredMinQualityLevel
Erwartete minimal zulässige Qualitätsstufe. Änderungen sind nur vorAssemble() wirksam.
public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }
DesiredResolution
Erwartete Auflösung. Änderungen sind nur vor demDeviceOpened-Ereignis oder OnEnable wirksam.
Wenn die Bildgröße während der Aufnahme mitFrameRecorder geändert wird, werden die Aufnahmedaten nicht mehr aktualisiert. Ein Neustart der Aufnahme nach dem Schließen ist erforderlich.
public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }
DesiredTrackingMode
Erwarteter Tracking-Modus. Änderungen sind nur vor dem Start der Session wirksam.
public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }
DeviceCameras
Nur bei Erstellung einer neuen Framequelle verfügbar. 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 bestimmen, ob die Bewegungsverfolgung gestartet wird.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }
Display
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird nur währendAssemble() abgerufen.
Stellt Systemanzeigeinformationen bereit. Sie könnenDefaultSystemDisplay oderDefaultHMDDisplay verwenden, um Standardanzeigeinformationen abzurufen.
protected override IDisplay Display { get; }
FrameRateRange
Bildratenbereich. Nur verfügbar, wennOpened wahr ist.
public Vector2 FrameRateRange { get; }
IsAvailable
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird nur währendAssemble() abgerufen.
Ob die aktuelle Framequelle verfügbar ist.
Wenn der Wert null ist, wirdCheckAvailability() aufgerufen. Der Wert wird nach Abschluss derCoroutine abgerufen.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird nur währendAssemble() abgerufen.
Wenn der Wert wahr ist, aktualisiert die Session das Transform 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 steuern. Sie sollten das Kamerarendering verarbeiten, insbesondere im VST-Modus.
protected override bool IsCameraUnderControl { get; }
IsHMD
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird nur währendAssemble() abgerufen.
Ob die aktuelle Framequelle ein Head-Mounted Display ist. Bei einem Head-Mounted Display 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 Punktwolkendaten. Nur verfügbar, wennOpened wahr 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 sowohlOpened als auchMonoBehaviour.enabled wahr sind.
public Vector2Int Size { get; }
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 Treffen einer horizontalen 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ächstgelegenen 3D-Punkts entlang eines Strahls von nah nach fern von der Kamera aus.pointInView muss auf [0, 1]^2 normalisiert werden.
public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)
Parameter
pointInView
OnSessionStart(ARSession)
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird nur währendStartSession() abgerufen.
Verarbeitet den Session-Start, wenn diese Framequelle inAssembly eingebaut wurde. Diese Methode ist für verzögerte Initialisierung konzipiert. Hier können AR-spezifische Initialisierungsarbeiten durchgeführt werden.
protected override void OnSessionStart(ARSession session)
Parameter
session
OnSessionStop()
Nur bei Erstellung einer neuen Framequelle verfügbar. Wird währendStopSession(bool) oder anderen Session-Stopp-/Beschädigungsprozessen abgerufen.
Verarbeitet den Session-Stopp, wenn diese Framequelle inAssembly eingebaut wurde. Mit dieser Methode können Ressourcen zerstört werden, die inStartSession() und während des Session-Betriebs erstellt wurden, und der interne Zustand wiederhergestellt werden. Diese Methode wird garantiert aufgerufen, bevor die Session zerstört wird. Wenn die Framequelle vor der Session zerstört wird, wird sie nicht aufgerufen und die Session wird beschädigt.
protected override void OnSessionStop()
Open()
Öffnet das Gerät. WennOpen() undClose() nicht manuell aufgerufen werden, wird automatischOpen() ausgeführt, nachdemARSession gestartet wurde.
public void Open()
Ereignisse
DeviceClosed
Ereignis beim Schließen des Geräts.
public event Action DeviceClosed
DeviceOpened
Ereignis beim Öffnen des Geräts, Boolescher Wert gibt Erfolg an.
public event Action<bool, PermissionStatus, string> DeviceOpened