Class MotionTrackerFrameSource
- Ruang Nama
- easyar
- Rakitan
- EasyAR.Sense.dll
Mengontrol easyar.MotionTrackerCameraDevice di scene sebagai MonoBehaviour, menyediakan ekstensi fungsionalitas di lingkungan Unity.
Frame source ini adalah perangkat pelacakan gerak yang akan mengeluarkan data gerak di ARSession.
public class MotionTrackerFrameSource : FrameSource
- Pewarisan
-
MotionTrackerFrameSource
- Anggota Pewarisan
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 nyata, dikendalikan oleh EasyAR. Di headset, kamera ini hanya digunakan untuk menampilkan beberapa teks diagnostik di depan mata, tidak untuk rendering gambar, dan kamera tidak dikendalikan oleh EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Alternatif untuk Camera, hanya berlaku saat Unity XR Origin tidak digunakan, jika tidak diatur akan menggunakan Camera.main.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Hanya disediakan saat membuat frame source baru. Ini akan diakses selama seluruh siklus hidup ARSession.
Apakah frame kamera telah mulai masuk.
protected override bool CameraFrameStarted { get; }
DesiredFocusMode
Mode fokus yang diinginkan, hanya efektif jika diubah sebelum peristiwa DeviceOpened atau OnEnable.
Perhatian: Karena keterbatasan perangkat keras atau sistem, sakelar fokus mungkin tidak berfungsi di beberapa perangkat.
public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredFrameRate
Frame rate perangkat yang diinginkan, hanya efektif jika diubah sebelum peristiwa DeviceOpened atau OnEnable.
public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }
DesiredMinQualityLevel
Tingkat kualitas minimum yang diizinkan, hanya efektif jika diubah sebelum Assemble().
public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }
DesiredResolution
Resolusi yang diinginkan, hanya efektif jika diubah sebelum peristiwa DeviceOpened atau OnEnable.
Jika ukuran gambar diubah selama perekaman FrameRecorder, data rekaman akan berhenti diperbarui, perlu ditutup dan direkam ulang.
public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }
DesiredTrackingMode
Mode pelacakan yang diinginkan, hanya efektif jika diubah sebelum session dimulai.
public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }
DeviceCameras
Hanya disediakan saat membuat frame source baru. Ini akan diakses saat CameraFrameStarted bernilai true.
Menyediakan perangkat kamera yang menyediakan 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; }
DeviceQualityLevel
Mendapatkan kualitas Motion Tracking pada perangkat, dikombinasikan dengan skenario aplikasi, nilai ini dapat digunakan untuk menilai apakah akan memulai Motion Tracking.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { 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 sama dengan null, CheckAvailability() akan dipanggil, nilainya akan didapat 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 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 headset. Jika headset, informasi diagnostik akan ditampilkan di papan 3D di depan kamera.
Beberapa frame filter akan berjalan berbeda di headset.
protected override bool IsHMD { get; }
LocalPointCloud
Informasi lokasi data titik awan saat ini. Hanya tersedia saat Opened bernilai true.
public List<Vector3> LocalPointCloud { get; }
Opened
Apakah kamera terbuka.
public bool Opened { get; }
Size
Ukuran gambar saat ini. Hanya tersedia saat Opened dan MonoBehaviour.enabled keduanya bernilai true.
public Vector2Int Size { get; }
enabled
Memulai/menghentikan pengumpulan data aliran video saat ARSession berjalan. Pengumpulan baru akan dimulai setelah session dimulai dan MonoBehaviour.enabled bernilai true.
public bool enabled { get; set; }
Metode
Close()
Menutup perangkat.
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
Hit Test pada bidang horizontal yang terdeteksi secara real-time dalam bidang pandang saat ini, setelah mengetuk bidang horizontal, mengembalikan koordinat posisi titik 3D terdekat pada bidang tersebut dari sinar Hit Test. pointInView perlu dinormalisasi ke [0, 1]^2.
public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)
Parameter
pointInView
HitTestAgainstPointCloud(Vector2)
Hit Test pada titik awan saat ini, mendapatkan koordinat posisi titik 3D terdekat pada satu sinar dari kamera dari dekat ke jauh. pointInView perlu dinormalisasi ke [0, 1]^2.
public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)
Parameter
pointInView
OnSessionStart(ARSession)
Hanya disediakan saat membuat frame source baru. Ini hanya akan diakses selama proses StartSession().
Menangani dimulainya 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 selama StartSession() dan operasi session, serta mengembalikan status internal. Metode ini akan dipanggil sebelum session dihancurkan. Jika frame source dihancurkan sebelum session, metode ini tidak akan dipanggil, dan session akan rusak.
protected override void OnSessionStop()
Open()
Membuka perangkat. Jika Open() dan Close() tidak dipanggil secara manual, akan otomatis Open() setelah ARSession dimulai.
public void Open()
Peristiwa
DeviceClosed
Peristiwa penutupan perangkat.
public event Action DeviceClosed
DeviceOpened
Peristiwa pembukaan perangkat, nilai bool menunjukkan berhasil atau tidak.
public event Action<bool, PermissionStatus, string> DeviceOpened