Table of Contents

Class CameraDeviceFrameSource

Ruang Nama
easyar
Rakitan
EasyAR.Sense.dll

Mengontroleasyar.CameraDevice di dalam adegan, menyediakan ekstensi fungsionalitas di lingkungan Unity.

Sumber frame ini bukan perangkat pelacakan gerak, tidak akan mengeluarkan data gerak diARSession.

[RequireComponent(typeof(CameraDeviceDisplay))]
public class CameraDeviceFrameSource : FrameSource
Pewarisan
CameraDeviceFrameSource
Derived
Anggota Pewarisan

Bidang

CameraOpenIndex

Indeks perangkat yang digunakan saat membuka kamera, digunakan saatCameraOpenMethod == DeviceIndex, hanya efektif jika dimodifikasi sebelum peristiwaDeviceOpened.

[HideInInspector]
[SerializeField]
public int CameraOpenIndex

CameraOpenMethod

Metode yang digunakan saat membuka kamera, hanya efektif jika dimodifikasi sebelum peristiwaDeviceOpened.

[HideInInspector]
[SerializeField]
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod

CameraOpenType

Tipe Kamera yang digunakan saat membuka kamera, digunakan saatCameraOpenMethod == PreferredType atauSpecificType, hanya efektif jika dimodifikasi sebelum peristiwaDeviceOpened.

[HideInInspector]
[SerializeField]
public CameraDeviceType CameraOpenType

Properti

AndroidCameraApiType

Di Android, dapat digunakan untuk mendapatkan Camera API yang digunakan (camera1 atau camera2).. Hanya tersedia saatOpened adalah true.

public AndroidCameraApiType AndroidCameraApiType { get; }

AvailableCenterMode

Hanya disediakan saat membuat frame source baru. Hanya akan diakses selama proses Assemble().

Semua mode pusat yang dapat digunakan.

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

Camera

Hanya disediakan saat membuat frame source baru. Hanya akan diakses selama proses Assemble().

Pada perangkat desktop atau ponsel, kamera ini mewakili Camera di dunia virtual yang sesuai dengan perangkat kamera di lingkungan nyata, matriks proyeksi dan posisinya akan sesuai dengan kamera nyata, dikendalikan oleh EasyAR. Pada headset, kamera ini hanya digunakan untuk menampilkan beberapa teks diagnostik di depan mata, tidak untuk rendering gambar, dan kameranya tidak dikendalikan oleh EasyAR.

protected override Camera Camera { get; }

CameraCandidate

Alternatif untuk Camera, jika tidak disetel akan menggunakan Camera.main.

public Camera CameraCandidate { get; set; }

CameraCount

Mendapatkan jumlah kamera yang dikenali oleh sistem operasi.

public static int CameraCount { get; }

CameraFrameStarted

Hanya disediakan saat membuat frame source baru. Ini akan diakses sepanjang siklus hidup ARSession.

Apakah frame kamera sudah mulai dimasukkan.

protected override bool CameraFrameStarted { get; }

CameraType

Tipe kamera. Hanya tersedia saatOpened adalah true.

public CameraDeviceType CameraType { get; }

DesiredAndroidCameraApiType

Android Camera Api yang diinginkan, hanya efektif jika diubah sebelum peristiwa DeviceOpened.

Jika tidak disetel, akan dipilih berdasarkan DesiredCameraPreference.

public Optional<AndroidCameraApiType> DesiredAndroidCameraApiType { get; set; }

DesiredCameraPreference

Preferensi yang digunakan saat membuat perangkat kamera, hanya efektif jika diubah sebelum sesi dimulai.

public Optional<CameraDevicePreference> DesiredCameraPreference { get; set; }

DesiredFocusMode

Mode fokus yang diinginkan, hanya efektif jika diubah sebelum peristiwa DeviceOpened.

Catatan: Terbatas oleh perangkat keras atau sistem, sakelar fokus mungkin tidak berfungsi di beberapa perangkat. Jika tidak disetel, akan dipilih berdasarkan DesiredCameraPreference.

public Optional<CameraDeviceFocusMode> DesiredFocusMode { get; set; }

DesiredSize

Ukuran gambar kamera yang diinginkan, hanya efektif jika diubah sebelum peristiwa DeviceOpened.

Akan menggunakan ukuran yang nilainya paling mendekati dalam SupportedSize. Jika tidak disetel, nilai default akan digunakan.

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

DeviceCameras

Hanya disediakan saat membuat frame source baru. Ini akan diakses saat CameraFrameStarted bernilai true.

Menyediakan kamera perangkat yang memberikan data frame kamera. Jika data frame kamera disediakan oleh beberapa kamera, daftar harus mencakup semua kamera.

Pastikan nilainya benar saat CameraFrameStarted bernilai true.

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

Hanya disediakan saat membuat frame source baru. Hanya akan diakses selama proses Assemble().

Menyediakan informasi tampilan sistem. Anda dapat menggunakan DefaultSystemDisplay atau DefaultHMDDisplay untuk mendapatkan informasi tampilan default.

protected override IDisplay Display { get; }

FocusMode

Mode fokus. Hanya tersedia saat Opened bernilai true.

public CameraDeviceFocusMode FocusMode { set; }

FrameRateRange

Rentang frame rate. Hanya tersedia saat Opened bernilai true.

public Vector2 FrameRateRange { get; }

FrameRateRangeIndex

Indeks rentang frame rate saat ini perangkat. Hanya tersedia saat Opened bernilai true.

public int FrameRateRangeIndex { get; set; }

Index

Indeks kamera. Hanya tersedia saatOpened adalah true.

public int Index { get; }

IsAvailable

Hanya disediakan saat membuat frame source baru. Hanya akan diakses selama proses Assemble().

Apakah frame source saat ini tersedia.

Jika nilainya null, CheckAvailability() akan dipanggil, nilainya akan diperoleh setelah Coroutine selesai.

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

Hanya disediakan saat membuat frame source baru. Hanya akan diakses selama proses Assemble().

Saat nilainya true, session akan memperbarui transform kamera dan akan merender gambar kamera.

Saat membuat ekstensi headset, ini harus false. Anda harus sepenuhnya mengontrol kamera 3D dalam scene. Anda harus menangani rendering kamera, terutama dalam mode VST.

protected override bool IsCameraUnderControl { get; }

IsHMD

Hanya disediakan saat membuat frame source baru. Hanya akan diakses selama proses Assemble().

Apakah frame source saat ini adalah headset. Jika headset, informasi diagnostik akan ditampilkan pada papan 3D di depan kamera.

Beberapa frame filter berjalan berbeda pada perangkat.

protected override bool IsHMD { get; }

Opened

Apakah kamera terbuka.

public bool Opened { get; }

Parameters

Parameter kamera. Hanya tersedia saat Opened bernilai true.

public CameraParameters Parameters { get; set; }

Size

Ukuran gambar saat ini. Hanya tersedia saat Opened bernilai true.

set akan menggunakan ukuran yang nilainya paling mendekati dalam SupportedSize.

Jika ukuran gambar diubah selama perekaman FrameRecorder, data rekaman akan berhenti diperbarui dan perlu ditutup lalu direkam ulang.

public Vector2Int Size { get; set; }

SupportedFrameRateRange

Rentang frame rate yang didukung oleh perangkat saat ini. Hanya tersedia saat Opened bernilai true.

public List<Vector2> SupportedFrameRateRange { get; }

SupportedSize

Semua ukuran gambar yang didukung oleh perangkat saat ini. Hanya tersedia saatOpened adalah true.

public List<Vector2Int> SupportedSize { get; }

enabled

Memulai/menghentikan pengumpulan aliran video saat ARSession berjalan. Setelah session dimulai, pengumpulan hanya akan dimulai jika MonoBehaviour.enabled bernilai true.

public bool enabled { get; set; }

Metode

AutoFocus()

Does auto focus once. It is only available when FocusMode is Normal or Macro.

public bool AutoFocus()

Close()

Menutup perangkat.

public void Close()

OnSessionStart(ARSession)

Hanya disediakan saat membuat frame source baru. Hanya akan diakses selama proses StartSession().

Menangani peluncuran session, jika frame source ini telah dirakit ke dalam Assembly. Metode ini dirancang untuk inisialisasi tertunda, Anda dapat melakukan pekerjaan inisialisasi khusus AR dalam metode ini.

protected override void OnSessionStart(ARSession session)

Parameter

session

OnSessionStop()

Hanya disediakan saat membuat frame source baru. Ini akan diakses selama StopSession(bool) atau proses penghentian/kerusakan session lainnya.

Menangani penghentian session, jika frame source ini telah dirakit ke dalam Assembly. Anda dapat menggunakan metode ini untuk menghancurkan sumber daya yang dibuat oleh StartSession() dan selama session berjalan, serta memulihkan status internal. Metode ini dijamin akan dipanggil sebelum session dihancurkan. Jika frame source dihancurkan sebelum session, ini tidak akan dipanggil, dan session akan rusak.

protected override void OnSessionStop()

Open()

Buka perangkat. Jika Open() dan Close() tidak dipanggil secara manual, ARSession akan otomatis melakukan Open() setelah dimulai.

Hanya dapat digunakan setelah sesi dimulai.

public void Open()

SetFlashTorch(bool)

Mengatur mode flash torch. Hanya tersedia saat Opened bernilai true.

public bool SetFlashTorch(bool on)

Parameter

on

Peristiwa

DeviceClosed

Peristiwa perangkat ditutup.

public event Action DeviceClosed

DeviceOpened

Peristiwa perangkat terbuka, nilai bool menunjukkan berhasil atau tidak.

public event Action<bool, PermissionStatus, string> DeviceOpened

DeviceStateChanged

Peristiwa perangkat tidak dapat digunakan seperti terputus atau direbut (hanya Windows).

public event Action<CameraState> DeviceStateChanged