Class CameraDeviceFrameSource
- Namespace
- easyar
- Assembly
- EasyAR.Sense.dll
Steuert in der Szene das easyar.CameraDevice zugehörige MonoBehaviour und bietet Funktionserweiterungen in der Unity-Umgebung.
Diese Frame-Quelle ist kein Bewegungsverfolgungsgerät und gibt im ARSession keine Bewegungsdaten aus.
[RequireComponent(typeof(CameraDeviceDisplay))]
public class CameraDeviceFrameSource : FrameSource
- Vererbung
-
CameraDeviceFrameSource
- Derived
- Geerbte Mitglieder
Felder
CameraOpenIndex
Der beim Öffnen der Kamera verwendete Geräteindex. Wird verwendet, wenn CameraOpenMethod == DeviceIndex. Änderungen sind nur wirksam, bevor das DeviceOpened-Ereignis eintritt.
[HideInInspector]
[SerializeField]
public int CameraOpenIndex
CameraOpenMethod
Die beim Öffnen der Kamera verwendete Methode. Änderungen sind nur wirksam, bevor das DeviceOpened-Ereignis eintritt.
[HideInInspector]
[SerializeField]
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod
CameraOpenType
Der beim Öffnen der Kamera verwendete Kameratyp. Wird verwendet, wenn CameraOpenMethod == PreferredType oder SpecificType. Änderungen sind nur wirksam, bevor das DeviceOpened-Ereignis eintritt.
[HideInInspector]
[SerializeField]
public CameraDeviceType CameraOpenType
Eigenschaften
AndroidCameraApiType
Unter Android kann dies verwendet werden, um die verwendete Kamera-API (camera1 oder camera2) zu erhalten. Nur verfügbar, wenn Opened true ist.
public AndroidCameraApiType AndroidCameraApiType { get; }
AvailableCenterMode
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Zugriff erfolgt ausschließlich während des Assemble()-Prozesses.
Alle verfügbaren Zentrierungsmodi.
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
Nur beim Erstellen einer neuen Frame Source angegeben. Wird nur während Assemble() verarbeitet.
Auf Desktop-Geräten oder Handys repräsentiert diese Kamera das Camera in der virtuellen Welt, das dem physischen Kameragerät entspricht. Ihre Projektionsmatrix und Position entsprechen der realen Kamera und werden von EasyAR gesteuert. Bei Head-Mounted Displays 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 zu Camera. Falls nicht festgelegt, wird Camera.main verwendet.
public Camera CameraCandidate { get; set; }
CameraCount
Ruft die Anzahl der vom Betriebssystem erkannten Kameras ab.
public static int CameraCount { get; }
CameraFrameStarted
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Während der gesamten Lebensdauer von ARSession zugreifbar.
Gibt an, ob die Kamerabilderfassung gestartet wurde.
protected override bool CameraFrameStarted { get; }
CameraType
Der Kameratyp. Nur verfügbar, wenn Opened true ist.
public CameraDeviceType CameraType { get; }
DesiredAndroidCameraApiType
Gewünschte Android Camera API. Nur wirksam, wenn vor dem DeviceOpened-Ereignis geändert.
Wenn nicht festgelegt, erfolgt die Auswahl basierend auf DesiredCameraPreference.
public Optional<AndroidCameraApiType> DesiredAndroidCameraApiType { get; set; }
DesiredCameraPreference
Präferenzeinstellungen für die Erstellung des Kamerageräts. Nur wirksam, wenn vor dem Start der Session geändert.
public Optional<CameraDevicePreference> DesiredCameraPreference { get; set; }
DesiredFocusMode
Gewünschter Fokusmodus. Nur wirksam, wenn vor dem DeviceOpened-Ereignis geändert.
Hinweis: Aufgrund von Hardware- oder Systembeschränkungen kann der Fokuswechsel auf einigen Geräten unwirksam sein. Wenn nicht festgelegt, erfolgt die Auswahl basierend auf DesiredCameraPreference.
public Optional<CameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredSize
Gewünschte Kamerabildgröße. Nur wirksam, wenn vor dem DeviceOpened-Ereignis geändert.
Verwendet die nächstgelegene Größe in SupportedSize. Wenn nicht festgelegt, wird der Standardwert verwendet.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Zugriff nur wenn CameraFrameStarted „true“ ist.
Stellt die Gerätekamera für Kamerabilddaten bereit. Bei mehreren Kameras müssen alle in der Liste enthalten sein.
Sicherstellen, dass der Wert korrekt ist, wenn CameraFrameStarted „true“ ist.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Zugriff erfolgt ausschließlich während des Assemble()-Prozesses.
Stellt Anzeigesystem-Informationen bereit. Verwenden Sie DefaultSystemDisplay oder DefaultHMDDisplay für Standard-Anzeigeinformationen.
protected override IDisplay Display { get; }
FocusMode
Fokusmodus. Nur verfügbar, wenn Opened true ist.
public CameraDeviceFocusMode FocusMode { set; }
FrameRateRange
Bildratenbereich. Nur verfügbar, wenn Opened true ist.
public Vector2 FrameRateRange { get; }
FrameRateRangeIndex
Index des aktuellen Bildratenbereichs des Geräts. Nur verfügbar, wenn Opened true ist.
public int FrameRateRangeIndex { get; set; }
Index
Der Kamera-Index. Nur verfügbar, wenn Opened true ist.
public int Index { get; }
IsAvailable
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Zugriff erfolgt ausschließlich während des Assemble()-Prozesses.
Gibt an, ob die aktuelle Frame-Source verfügbar ist.
Bei „null“ wird CheckAvailability() aufgerufen. Der Wert wird nach Abschluss der Coroutine abgerufen.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Zugriff erfolgt ausschließlich während des Assemble()-Prozesses.
Bei „true“ aktualisiert die Session die Kamera-Transformation und rendert das Kamerabild.
Bei Head-Mounted-Display-Erweiterungen muss dies „false“ sein. Sie müssen die 3D-Kamera in der Szene vollständig steuern und das Kamerarendering handhaben, insbesondere im VST-Modus.
protected override bool IsCameraUnderControl { get; }
IsHMD
Nur beim Erstellen einer neuen Frame Source angegeben. Wird nur während Assemble() verarbeitet.
Ob die aktuelle Frame Source 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; }
Parameters
Kameraparameter. Nur verfügbar, wenn Opened true ist.
public CameraParameters Parameters { get; set; }
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 gestoppt und neu gestartet werden.
public Vector2Int Size { get; set; }
SupportedFrameRateRange
Alle vom aktuellen Gerät unterstützten Bildratenbereiche. Nur verfügbar, wenn Opened true ist.
public List<Vector2> SupportedFrameRateRange { get; }
SupportedSize
Alle vom aktuellen Gerät unterstützten Bildgrößen. Nur verfügbar, wenn Opened true ist.
public List<Vector2Int> SupportedSize { get; }
Methoden
AutoFocus()
Does auto focus once. It is only available when FocusMode is Normal or Macro.
public bool AutoFocus()
Close()
Schließt das Gerät.
public void Close()
OnSessionStart(ARSession)
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Zugriff nur während StartSession().
Verarbeitet den Session-Start, wenn diese Frame-Source in Assembly integriert ist. Dient zur verzögerten Initialisierung AR-spezifischer Komponenten.
protected override void OnSessionStart(ARSession session)
Parameter
session
OnSessionStop()
Wird nur bei Erstellung einer neuen Frame-Source bereitgestellt. Zugriff bei StopSession(bool) oder Session-Stopp/Fehlern.
Verarbeitet den Session-Stopp, wenn diese Frame-Source in Assembly integriert ist. Dient zur Freigabe von StartSession()-Ressourcen und Wiederherstellung des Zustands. Wird vor Session-Zerstörung garantiert aufgerufen.
protected override void OnSessionStop()
Open()
Öffnet das Gerät. Ohne manuellen Aufruf von Open() oder Close() erfolgt dies automatisch nach ARSession-Start.
Nutzbar erst nach Session-Start.
public void Open()
SetFlashTorch(bool)
Setzt den Blitzlicht-Modus. Nur verfügbar wenn Opened „true“ ist.
public bool SetFlashTorch(bool on)
Parameter
on
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
DeviceStateChanged
Ereignis bei Geräteunterbrechung oder -übernahme, wodurch es unbrauchbar wird (nur Windows).
public event Action<CameraState> DeviceStateChanged