Table of Contents

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 der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Alle verfügbaren Zentrumsmodi.

protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

Camera

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Auf Desktop-Geräten oder Mobiltelefonen repräsentiert diese Kamera dasCamera in der virtuellen Welt, das dem realen Kameragerät in der physischen Umgebung entspricht. Ihre Projektionsmatrix und Position entsprechen der echten Kamera und werden von EasyAR gesteuert. Auf einem Head-Mounted-Display dient diese Kamera nur dazu, einige Diagnosetexte 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. 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 der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird während der gesamten Lebensdauer desARSession abgerufen.

Ob die Kameraframe-Eingabe begonnen hat.

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 der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird abgerufen, wennCameraFrameStarted wahr 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, wennCameraFrameStarted wahr ist.

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Stellt Systemanzeigeinformationen bereit. Sie könnenDefaultSystemDisplay oderDefaultHMDDisplay verwenden, um Standardanzeigeinformationen zu erhalten.

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 der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Ob die aktuelle Frame-Quelle 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 Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Wenn der Wert wahr ist, aktualisiert die Sitzung die Transformation der Kamera und rendert das Kamerabild.

Bei der Erstellung einer Head-Mounted-Display-Erweiterung sollte dies falsch sein. Sie sollten die 3D-Kamera in der Szene vollständig kontrollieren. Sie sollten das Kamera-Rendering handhaben, insbesondere im VST-Modus.

protected override bool IsCameraUnderControl { get; }

IsHMD

Wird nur bei der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desAssemble()-Prozesses abgerufen.

Ob die aktuelle Frame-Quelle ein Head-Mounted-Display ist. Wenn es sich um ein Head-Mounted-Display handelt, 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; }

enabled

Startet/Stoppt das Erfassen des Videostreams während der Laufzeit desARSession. Nach dem Start der Sitzung beginnt die Erfassung nur, wennMonoBehaviour.enabled wahr ist.

public bool enabled { get; set; }

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 der Erstellung einer neuen Frame-Quelle bereitgestellt. Es wird nur während desStartSession()-Prozesses abgerufen.

Behandelt den Start der Sitzung, wenn diese Frame-Quelle inAssembly eingebunden wurde. Diese Methode ist für die verzögerte Initialisierung vorgesehen. 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 Frame-Quelle bereitgestellt. Es wird währendStopSession(bool) oder anderen Sitzungsstopp-/Beschädigungsprozessen abgerufen.

Behandelt das Stoppen der Sitzung, wenn diese Frame-Quelle inAssembly eingebunden wurde. Mit dieser Methode können Ressourcen, die währendStartSession() und des Sitzungsbetriebs erstellt wurden, zerstört und der interne Status wiederhergestellt werden. Diese Methode wird garantiert aufgerufen, bevor die Sitzung zerstört wird. Wenn die Frame-Quelle vor der Sitzung zerstört wird, wird sie nicht aufgerufen und die Sitzung wird beschädigt.

protected override void OnSessionStop()

Open()

Gerät öffnen. Wenn Open() und Close() nicht manuell aufgerufen werden, wird Open() automatisch ausgeführt, nachdem die ARSession gestartet wurde.

Kann erst verwendet werden, nachdem die Sitzung gestartet wurde.

public void Open()

SetFlashTorch(bool)

Setzen Sie den Blitzlichtmodus. Nur bei Opened verfügbar.

public bool SetFlashTorch(bool on)

Parameter

on

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

DeviceStateChanged

Ereignis bei Geräteunterbrechung oder -übernahme, wodurch es unbrauchbar wird (nur Windows).

public event Action<CameraState> DeviceStateChanged