Table of Contents

Class ThreeDofCameraDeviceFrameSource

Namespace
easyar
Assembly
EasyAR.Sense.dll

Steuert die ThreeDofCameraDeviceFrameSource (3DOF-Kameragerät) in der Szene und bietet Funktionserweiterungen in der Unity-Umgebung.

Diese Frame-Quelle ist ein 3DOF-Rotationstracking-Gerät und gibt Rotationsdaten in der ARSession aus.

public class ThreeDofCameraDeviceFrameSource : FrameSource
Vererbung
ThreeDofCameraDeviceFrameSource
Geerbte Mitglieder

Felder

DesiredFocusMode

Der gewünschte 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 ThreeDofCameraDeviceFocusMode DesiredFocusMode

Eigenschaften

Camera

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird nur während Assemble() aufgerufen.

Auf Desktop-Geräten oder Mobiltelefonen repräsentiert diese Kamera das Camera in der virtuellen Welt, das dem physischen Kameragerät in der realen Umgebung entspricht. Ihre Projektionsmatrix und Position entsprechen der realen Kamera und werden von EasyAR gesteuert. Auf einem Head-Mounted-Display dient diese Kamera nur dazu, Diagnosetext 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 gültig, wenn Unity XR Origin nicht verwendet wird. Wenn nicht gesetzt, wird Camera.main verwendet.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird während der gesamten Lebensdauer der ARSession aufgerufen.

Ob die Kameraframe-Eingabe begonnen hat.

protected override bool CameraFrameStarted { get; }

DesiredSize

Gewünschte Kamerabildgröße. Änderungen sind nur wirksam, wenn sie vor dem DeviceOpened-Ereignis vorgenommen werden.

Verwendet die nächstgelegene Größe in SupportedSize. Wenn nicht gesetzt, wird der Standardwert verwendet.

public Optional<Vector2Int> DesiredSize { get; set; }

DeviceCameras

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird aufgerufen, wenn CameraFrameStarted true 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, wenn CameraFrameStarted true ist.

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird nur während Assemble() aufgerufen.

Stellt Systemanzeigeinformationen bereit. Sie können DefaultSystemDisplay oder DefaultHMDDisplay verwenden, um die Standardanzeigeinformationen zu erhalten.

protected override IDisplay Display { get; }

FrameRateRange

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

public Vector2 FrameRateRange { get; }

IsAvailable

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird nur während Assemble() aufgerufen.

Ob die aktuelle Frame-Quelle verfügbar ist.

Wenn der Wert null ist, wird CheckAvailability() aufgerufen. Der Wert wird nach Abschluss der Coroutine abgerufen.

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird nur während Assemble() aufgerufen.

Wenn der Wert true ist, aktualisiert die Session das Transform der Kamera und rendert das Kamerabild.

Beim Erstellen einer Head-Mounted-Display-Erweiterung sollte dies false 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

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird nur während Assemble() aufgerufen.

Ob die aktuelle Frame-Quelle 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; }

Opened

Ob die Kamera geöffnet ist.

public bool Opened { get; }

Size

Aktuelle Bildgröße. Nur verfügbar, wenn Opened true ist.

Set verwendet die nächstgelegene Größe in SupportedSize.

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 Vector2Int Size { get; set; }

SupportedSize

Alle vom aktuellen Gerät unterstützten Bildgrößen. Nur verfügbar, wenn Opened true ist.

public List<Vector2Int> SupportedSize { get; }

Methoden

Close()

Schließt das Gerät.

public void Close()

OnSessionStart(ARSession)

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird nur während StartSession() aufgerufen.

Verarbeitet den Session-Start, wenn diese Frame-Quelle in Assembly eingebaut wurde. Diese Methode ist für verzögerte Initialisierung vorgesehen. Hier können AR-spezifische Initialisierungsarbeiten durchgeführt werden.

protected override void OnSessionStart(ARSession session)

Parameter

session

OnSessionStop()

Wird nur bereitgestellt, wenn eine neue Frame-Quelle erstellt wird. Wird während StopSession(bool) oder anderen Session-Stopp-/Beschädigungsvorgängen aufgerufen.

Verarbeitet den Session-Stopp, wenn diese Frame-Quelle in Assembly eingebaut wurde. Mit dieser Methode können Ressourcen, die in StartSession() und während der Session erstellt wurden, zerstört und der interne Zustand wiederhergestellt werden. Diese Methode wird garantiert aufgerufen, bevor die Session zerstört wird. Wenn die Frame-Quelle 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. Wenn Open() und Close() nicht manuell aufgerufen werden, öffnet die ARSession nach dem Start automatisch mit 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