Class InertialCameraDeviceFrameSource
- Ruang Nama
- easyar
- Rakitan
- EasyAR.Sense.dll
Mengontrol easyar.InertialCameraDevice di scene sebagai MonoBehaviour, menyediakan ekstensi fungsional di lingkungan Unity.
Frame-source ini adalah perangkat pelacakan 5DOF (rotasi+pergeseran horizontal) yang menghasilkan data gerakan di ARSession.
public class InertialCameraDeviceFrameSource : FrameSource
- Pewarisan
-
InertialCameraDeviceFrameSource
- Anggota Pewarisan
Bidang
DesiredFocusMode
Mode fokus yang diinginkan, hanya efektif jika diubah sebelum event DeviceOpened atau OnEnable.
Catatan: Karena batasan perangkat keras atau sistem, sakelar fokus mungkin tidak berfungsi di beberapa perangkat.
public InertialCameraDeviceFocusMode DesiredFocusMode
Properti
Camera
Hanya disediakan saat membuat frame-source 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 HMD, kamera ini hanya untuk menampilkan teks diagnosis di depan mata, bukan untuk rendering gambar, dan tidak dikendalikan oleh EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Alternatif untuk Camera, hanya berlaku jika Unity XR Origin tidak digunakan. Jika tidak disetel, Camera.main akan digunakan.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Hanya disediakan saat membuat frame-source baru. Akan diakses sepanjang siklus hidup ARSession.
Apakah frame kamera sudah mulai masuk.
protected override bool CameraFrameStarted { get; }
DesiredSize
Ukuran gambar kamera yang diinginkan, hanya efektif jika diubah sebelum event DeviceOpened.
Akan menggunakan ukuran terdekat dalam SupportedSize. Jika tidak disetel, nilai default akan digunakan.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Hanya disediakan saat membuat frame-source baru. Akan diakses saat CameraFrameStarted bernilai true.
Menyediakan kamera perangkat yang memberikan data frame kamera. Jika data frame berasal dari beberapa kamera, semua harus disertakan dalam daftar.
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; }
FrameRateRange
Rentang frame-rate. Hanya tersedia saat Opened bernilai true.
public Vector2 FrameRateRange { 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 merender gambar kamera.
Saat membuat ekstensi HMD, ini harus false. Anda harus sepenuhnya mengontrol kamera 3D di 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 HMD (head-mounted display). Jika ya, informasi diagnosis akan ditampilkan di papan 3D di depan kamera.
Beberapa frame-filter berperilaku berbeda saat dijalankan 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 terdekat dalam SupportedSize.
Jika ukuran gambar diubah selama perekaman FrameRecorder, data rekaman akan berhenti diperbarui, perlu ditutup dan direkam ulang.
public Vector2Int Size { get; set; }
SupportedSize
Semua ukuran gambar yang didukung oleh perangkat saat ini. Hanya tersedia saat Opened bernilai true.
public List<Vector2Int> SupportedSize { get; }
Metode
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 sudah dirakit ke dalam Assembly. Metode ini dirancang untuk inisialisasi tertunda, Anda dapat melakukan tugas inisialisasi khusus AR di sini.
protected override void OnSessionStart(ARSession session)
Parameter
session
OnSessionStop()
Hanya disediakan saat membuat frame-source baru. Akan diakses selama StopSession(bool) atau proses penghentian/kerusakan session lainnya.
Menangani penghentian session jika frame-source ini sudah dirakit ke dalam Assembly. Gunakan metode ini untuk menghancurkan sumber daya yang dibuat di StartSession() dan selama session berjalan, serta mengembalikan status internal. Ini dijamin dipanggil sebelum session dihancurkan. Jika frame-source dihancurkan sebelum session, ini tidak akan dipanggil dan session akan rusak.
protected override void OnSessionStop()
Open()
Membuka perangkat. Jika Open() dan Close() tidak dipanggil secara manual, ARSession akan secara otomatis memanggil Open() setelah dimulai.
public void Open()
ResetInertial()
Mengatur ulang status.
public void ResetInertial()
Peristiwa
DeviceClosed
Event penutupan perangkat.
public event Action DeviceClosed
DeviceOpened
Event perangkat terbuka, nilai bool menunjukkan keberhasilan.
public event Action<bool, PermissionStatus, string> DeviceOpened