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