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 sumber frame 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().
Di perangkat desktop atau ponsel, kamera ini mewakili Camera dalam dunia virtual yang sesuai dengan perangkat kamera di lingkungan nyata, matriks proyeksi dan posisinya akan sesuai dengan kamera fisik, dikendalikan oleh EasyAR. Di 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 sumber frame baru. Ini akan diakses selama seluruh siklus hidup ARSession.
Apakah frame kamera telah mulai menerima input.
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 sumber frame baru. Ini akan diakses saat CameraFrameStarted true.
Menyediakan kamera perangkat untuk data frame kamera. Jika data frame kamera disediakan oleh banyak kamera, semua kamera harus dimasukkan dalam daftar.
Pastikan nilainya benar saat CameraFrameStarted true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Hanya disediakan saat membuat sumber frame baru. Hanya akan diakses selama proses Assemble().
Menyediakan informasi sistem tampilan. 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 sumber frame baru. Hanya akan diakses selama proses Assemble().
Apakah sumber frame saat ini tersedia.
Jika nilai sama dengan null, CheckAvailability() akan dipanggil, dan nilainya akan didapat setelah Coroutine berakhir.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Hanya disediakan saat membuat sumber frame baru. Hanya akan diakses selama proses Assemble().
Saat nilainya true, sesi akan memperbarui transform kamera dan merender gambar kamera.
Saat membuat ekstensi headset, ini harus false. Anda harus mengontrol sepenuhnya kamera 3D dalam adegan. 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 mungkin berjalan berbeda di 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; }
Metode
AutoFocus()
Does auto focus once. It is only available when FocusMode is Normal or Macro.
public bool AutoFocus()
Close()
Tutup perangkat.
public void Close()
OnSessionStart(ARSession)
Hanya disediakan saat membuat sumber frame baru. Hanya akan diakses selama proses StartSession().
Tangani peluncuran sesi, jika sumber frame ini telah dirakit ke dalam Assembly. Metode ini dirancang untuk inisialisasi tertunda; Anda dapat melakukan pekerjaan inisialisasi khusus AR di sini.
protected override void OnSessionStart(ARSession session)
Parameter
session
OnSessionStop()
Hanya disediakan saat membuat sumber frame baru. Ini akan diakses selama StopSession(bool) atau proses penghentian/kerusakan sesi lainnya.
Tangani penghentian sesi, jika sumber frame ini telah dirakit ke dalam Assembly. Anda dapat menggunakan metode ini untuk menghancurkan StartSession() dan sumber daya yang dibuat selama sesi berjalan, serta mengembalikan status internal. Metode ini dijamin akan dipanggil sebelum sesi dihancurkan. Jika sumber frame hancur sebelum sesi, metode ini tidak akan dipanggil dan sesi akan rusak.
protected override void OnSessionStop()
Open()
Buka perangkat. Jika Open() dan Close() tidak dipanggil secara manual, ARSession akan secara otomatis Open() setelah dimulai.
Hanya dapat digunakan setelah sesi dimulai.
public void Open()
SetFlashTorch(bool)
Atur mode senter kilat. Hanya tersedia saat Opened true.
public bool SetFlashTorch(bool on)
Parameter
on
Peristiwa
DeviceClosed
Peristiwa perangkat ditutup.
public event Action DeviceClosed
DeviceOpened
Peristiwa perangkat terbuka, nilai bool menunjukkan apakah berhasil.
public event Action<bool, PermissionStatus, string> DeviceOpened
DeviceStateChanged
Peristiwa perangkat tidak dapat digunakan seperti terputus atau direbut (hanya Windows).
public event Action<CameraState> DeviceStateChanged