Table of Contents

Class ARKitFrameSource

Ruang Nama
easyar
Rakitan
EasyAR.Sense.dll

Komponen MonoBehaviour yang mengontrol perangkat kamera ARKit (easyar.ARKitCameraDevice) dalam scene, menyediakan ekstensi fungsionalitas di lingkungan Unity.

Sumber frame ini adalah perangkat pelacakan gerak yang akan mengeluarkan data gerak di ARSession.

public class ARKitFrameSource : FrameSource
Pewarisan
ARKitFrameSource
Anggota Pewarisan

Bidang

DesiredFocusMode

Mode fokus yang diinginkan, hanya efektif jika diubah sebelum event DeviceOpened atau OnEnable.

Perhatian: Karena keterbatasan perangkat keras atau sistem, sakelar fokus mungkin tidak berfungsi di beberapa perangkat.

public ARKitCameraDeviceFocusMode DesiredFocusMode

Properti

Camera

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

Di 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 fisik, dikendalikan oleh EasyAR. Di headset, kamera ini hanya digunakan untuk menampilkan beberapa teks diagnostik di depan mata, tidak untuk render gambar, dan kameranya tidak dikendalikan oleh EasyAR.

protected override Camera Camera { get; }

CameraCandidate

Alternatif untuk Camera, hanya berlaku jika Unity XR Origin tidak digunakan. Jika tidak diatur, akan menggunakan Camera.main.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

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

Apakah frame kamera sudah mulai dimasukkan.

protected override bool CameraFrameStarted { get; }

DesiredFrameRate

Frame-rate gambar kamera yang diinginkan, hanya efektif jika diubah sebelum event DeviceOpened.

Akan menggunakan nilai yang paling mendekati di SupportedFrameRate. Jika tidak diatur, nilai default akan digunakan.

public Optional<double> DesiredFrameRate { get; set; }

DesiredSize

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

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

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

DeviceCameras

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

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

Pastikan nilainya benar saat CameraFrameStarted bernilai true.

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

Hanya disediakan saat membuat sumber frame 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; }

FrameRate

Frame-rate perangkat saat ini. Hanya tersedia saat Opened bernilai true.

set akan menggunakan nilai yang paling mendekati di SupportedFrameRate.

public double FrameRate { get; set; }

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, nilai akan diperoleh setelah Coroutine selesai.

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

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

Ketika 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 di scene. Anda harus menangani render kamera, terutama dalam mode VST.

protected override bool IsCameraUnderControl { get; }

IsHMD

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

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

Beberapa filter frame akan beroperasi berbeda di perangkat.

protected override bool IsHMD { get; }

Opened

Apakah kamera terbuka.

public bool Opened { get; }

Size

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

set akan menggunakan ukuran yang nilainya paling mendekati di SupportedSize.

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

public Vector2Int Size { get; set; }

SupportedFrameRate

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

public List<double> SupportedFrameRate { get; }

SupportedSize

Semua ukuran gambar yang didukung oleh perangkat saat ini. Hanya tersedia saat Opened bernilai true.

public List<Vector2Int> SupportedSize { get; }

Metode

Close()

Tutup perangkat.

public void Close()

OnSessionStart(ARSession)

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

Menangani peluncuran session, jika sumber frame 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 sumber frame baru. Ini akan diakses selama StopSession(bool) atau proses penghentian/kerusakan session lainnya.

Menangani penghentian session, jika sumber frame ini telah dirakit ke dalam Assembly. Anda dapat menggunakan metode ini untuk menghancurkan sumber daya yang dibuat selama StartSession() dan operasi session, serta memulihkan status internal. Metode ini dijamin akan dipanggil sebelum session dihancurkan. Jika sumber frame 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 Open() setelah dimulai.

public void Open()

Peristiwa

DeviceClosed

Event saat perangkat ditutup.

public event Action DeviceClosed

DeviceOpened

Event saat perangkat dibuka, nilai bool menunjukkan berhasil atau tidak.

public event Action<bool, PermissionStatus, string> DeviceOpened