Class InertialCameraDeviceFrameSource
- Namespace
- easyar
- Assembly
- EasyAR.Sense.dll
Steuert dieeasyar.InertialCameraDevice im Szenario, bietet Funktionserweiterungen in der Unity-Umgebung.
Diese Framequelle ist ein 5DOF (Rotation + horizontale Translation) Tracking-Gerät und gibt Bewegungsdaten imARSession aus.
public class InertialCameraDeviceFrameSource : FrameSource
- Vererbung
-
InertialCameraDeviceFrameSource
- Geerbte Mitglieder
Felder
DesiredFocusMode
Der gewünschte Fokusmodus. Änderungen sind nur wirksam, wenn sie vor demDeviceOpened-Ereignis oder OnEnable erfolgen.
Hinweis: Aufgrund von Hardware- oder Systembeschränkungen kann der Fokuswechsel auf einigen Geräten unwirksam sein.
public InertialCameraDeviceFocusMode DesiredFocusMode
Eigenschaften
Camera
Wird nur bei der Erstellung einer neuen Framequelle bereitgestellt. Wird nur währendAssemble() abgerufen.
Auf Desktop- oder Mobilgeräten repräsentiert diese Kamera das virtuelle GegenstückCamera zum realen Kameragerät. Ihre Projektionsmatrix und Position entsprechen der realen Kamera und werden von EasyAR gesteuert. Bei Headsets wird diese Kamera nur zur Anzeige von Diagnosetexten vor den Augen verwendet, nicht zum Rendern des Bildes, und die Kamera wird nicht von EasyAR gesteuert.
protected override Camera Camera { get; }
CameraCandidate
Alternative zuCamera, 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 Framequelle bereitgestellt. Wird während der gesamten Lebensdauer derARSession abgerufen.
Ob die Kameraframe-Eingabe gestartet wurde.
protected override bool CameraFrameStarted { get; }
DesiredSize
Die gewünschte Kamerabildgröße. Änderungen sind nur wirksam, wenn sie vor demDeviceOpened-Ereignis erfolgen.
Es wird die nächstgelegene Größe inSupportedSize verwendet. Wenn nicht gesetzt, wird der Standardwert verwendet.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Wird nur bei der Erstellung einer neuen Framequelle bereitgestellt. Wird nur abgerufen, wennCameraFrameStarted true ist.
Stellt die Gerätekamera bereit, die die Kameraframedaten liefert. Wenn die Daten von mehreren Kameras stammen, müssen alle Kameras in der Liste enthalten sein.
Stellen Sie sicher, dass der Wert korrekt ist, wennCameraFrameStarted true ist.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Wird nur bei der Erstellung einer neuen Framequelle bereitgestellt. Wird nur währendAssemble() abgerufen.
Stellt Systemanzeigeinformationen bereit. Sie könnenDefaultSystemDisplay oderDefaultHMDDisplay verwenden, um die Standardanzeigeinformationen zu erhalten.
protected override IDisplay Display { get; }
FrameRateRange
Der Bildratenbereich. Nur verfügbar, wennOpened true ist.
public Vector2 FrameRateRange { get; }
IsAvailable
Wird nur bei der Erstellung einer neuen Framequelle bereitgestellt. Wird nur währendAssemble() abgerufen.
Ob die aktuelle Framequelle 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 Framequelle bereitgestellt. Wird nur währendAssemble() abgerufen.
Bei true aktualisiert die Session das Kamera-Transform und rendert das Kamerabild.
Bei der Erstellung von Headset-Erweiterungen sollte dies false sein. Sie sollten die 3D-Kamera in der Szene vollständig kontrollieren. Sie sollten das Kamera-Rendering verarbeiten, insbesondere im VST-Modus.
protected override bool IsCameraUnderControl { get; }
IsHMD
Wird nur bei der Erstellung einer neuen Framequelle bereitgestellt. Wird nur währendAssemble() abgerufen.
Ob die aktuelle Framequelle ein Headset ist. Bei einem Headset werden Diagnoseinformationen auf einer 3D-Platte vor der Kamera angezeigt.
Einige Frame-Filter verhalten sich auf dem Gerät unterschiedlich.
protected override bool IsHMD { get; }
Opened
Ob die Kamera geöffnet ist.
public bool Opened { get; }
Size
Die aktuelle Bildgröße. Nur verfügbar, wennOpened true ist.
Set verwendet die nächstgelegene Größe inSupportedSize.
Wenn die Bildgröße während der Aufnahme mitFrameRecorder geändert wird, werden die Aufnahmedaten nicht mehr aktualisiert. Die Aufnahme muss geschlossen und neu gestartet werden.
public Vector2Int Size { get; set; }
SupportedSize
Alle vom aktuellen Gerät unterstützten Bildgrößen. Nur verfügbar, wennOpened true ist.
public List<Vector2Int> SupportedSize { get; }
Methoden
Close()
Schließt das Gerät.
public void Close()
OnSessionStart(ARSession)
Wird nur bei der Erstellung einer neuen Framequelle bereitgestellt. Wird nur währendStartSession() abgerufen.
Verarbeitet den Session-Start, wenn diese Framequelle in dieAssembly eingebaut wurde. Diese Methode dient zur verzögerten Initialisierung. 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 Framequelle bereitgestellt. Wird währendStopSession(bool) oder anderen Stopp-/Beschädigungsprozessen der Session abgerufen.
Verarbeitet das Stoppen der Session, wenn diese Framequelle in dieAssembly eingebaut wurde. Mit dieser Methode können Ressourcen, die inStartSession() und während der Session erstellt wurden, zerstört und der interne Status 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, nachdem dieARSession gestartet wurde.
public void Open()
ResetInertial()
Setzt den Status zurück.
public void ResetInertial()
Ereignisse
DeviceClosed
Das Ereignis beim Schließen des Geräts.
public event Action DeviceClosed
DeviceOpened
Das Ereignis beim Öffnen des Geräts. Der boolesche Wert gibt an, ob es erfolgreich war.
public event Action<bool, PermissionStatus, string> DeviceOpened