Class ARKitFrameSource
- Namespace
- easyar
- Assembly
- EasyAR.Sense.dll
Eine MonoBehaviour, die das ARKit-Kameragerät (easyar.ARKitCameraDevice) in der Szene steuert und Funktionserweiterungen in der Unity-Umgebung bietet.
Diese Bildquelle ist ein Bewegungsverfolgungsgerät, das Bewegungsdaten im ARSession ausgibt.
public class ARKitFrameSource : FrameSource
- Vererbung
-
ARKitFrameSource
- 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 ARKitCameraDeviceFocusMode DesiredFocusMode
Eigenschaften
Camera
Wird nur bereitgestellt, wenn eine neue Bildquelle erstellt wird. Wird nur während des Assemble()-Prozesses abgerufen.
Auf Desktop-Geräten oder Mobiltelefonen repräsentiert diese Kamera das virtuelle Gegenstück (Camera) des realen Kamerageräts in der Umgebung. Ihre Projektionsmatrix und Position entsprechen der realen Kamera und werden von EasyAR gesteuert. Auf einem HMD dient diese Kamera nur dazu, Diagnosetext vor den Augen anzuzeigen, nicht zum Rendern der Szene. Die Kamera wird 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 Bildquelle erstellt wird. Wird während der gesamten Lebensdauer der ARSession abgerufen.
Ob der Kameraframe gestartet wurde.
protected override bool CameraFrameStarted { get; }
DesiredFrameRate
Gewünschte Kamerabildrate. Änderungen sind nur wirksam, wenn sie vor dem DeviceOpened-Ereignis vorgenommen werden.
Verwendet die nächstgelegene Bildrate aus SupportedFrameRate. Wenn nicht gesetzt, wird der Standardwert verwendet.
public Optional<double> DesiredFrameRate { get; set; }
DesiredSize
Gewünschte Kamerabildgröße. Änderungen sind nur wirksam, wenn sie vor dem DeviceOpened-Ereignis vorgenommen werden.
Verwendet die nächstgelegene Größe aus SupportedSize. Wenn nicht gesetzt, wird der Standardwert verwendet.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Wird nur bereitgestellt, wenn eine neue Bildquelle erstellt wird. Wird nur abgerufen, wenn CameraFrameStarted true ist.
Stellt die Gerätekamera(n) bereit, die die Kameraframedaten liefern. Wenn 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 Bildquelle erstellt wird. Wird nur während des Assemble()-Prozesses abgerufen.
Stellt die Systemanzeige bereit. Sie können DefaultSystemDisplay oder DefaultHMDDisplay verwenden, um die Standardanzeigeinformationen zu erhalten.
protected override IDisplay Display { get; }
FrameRate
Aktuelle Bildrate des Geräts. Nur verfügbar, wenn Opened true ist.
Set verwendet die nächstgelegene Bildrate aus SupportedFrameRate.
public double FrameRate { get; set; }
IsAvailable
Wird nur bereitgestellt, wenn eine neue Bildquelle erstellt wird. Wird nur während des Assemble()-Prozesses abgerufen.
Ob die aktuelle Bildquelle 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 Bildquelle erstellt wird. Wird nur während des Assemble()-Prozesses abgerufen.
Wenn true, aktualisiert die Session das Transform der Kamera und rendert das Kamerabild.
Bei der Erstellung einer HMD-Erweiterung sollte es false sein. Sie sollten die 3D-Kamera in der Szene vollständig kontrollieren. Sie sollten das Kamera-Rendering handhaben, besonders im VST-Modus.
protected override bool IsCameraUnderControl { get; }
IsHMD
Wird nur bereitgestellt, wenn eine neue Bildquelle erstellt wird. Wird nur während des Assemble()-Prozesses abgerufen.
Ob diese Bildquelle ein Head-Mounted-Display (HMD) ist. Bei einem HMD werden Diagnoseinformationen auf einer 3D-Tafel vor der Kamera angezeigt.
Einige Bildfilter 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 aus 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; }
SupportedFrameRate
Alle vom aktuellen Gerät unterstützten Bildraten. Nur verfügbar, wenn Opened true ist.
public List<double> SupportedFrameRate { get; }
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 Bildquelle erstellt wird. Wird nur während des StartSession()-Prozesses abgerufen.
Behandelt den Session-Start, wenn diese Bildquelle in die Assembly eingebaut wurde. Diese Methode ist für verzögerte Initialisierung vorgesehen. Hier können AR-spezifische Initialisierungen erfolgen.
protected override void OnSessionStart(ARSession session)
Parameter
session
OnSessionStop()
Wird nur bereitgestellt, wenn eine neue Bildquelle erstellt wird. Wird während StopSession(bool) oder anderer Session-Stopp-/Beschädigungsprozesse abgerufen.
Behandelt das Stoppen der Session, wenn diese Bildquelle in die Assembly eingebaut wurde. Mit dieser Methode können Sie in StartSession() und während der Session erstellte Ressourcen zerstören und den internen Zustand wiederherstellen. Diese Methode wird garantiert aufgerufen, bevor die Session zerstört wird. Wenn die Bildquelle 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, wird Open() automatisch beim Starten der ARSession aufgerufen.
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