Table of Contents

Class MotionTrackerFrameSource

Ruang Nama
easyar
Rakitan
EasyAR.Sense.dll

Mengontrol easyar.MotionTrackerCameraDevice dalam adegan melalui MonoBehaviour, menyediakan ekstensi fungsionalitas di lingkungan Unity.

Sumber frame 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 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 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 jika Unity XR Origin tidak digunakan. Jika tidak disetel, akan menggunakan Camera.main.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

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

Apakah frame kamera sudah mulai dimasukkan.

protected override bool CameraFrameStarted { get; }

DesiredFocusMode

Mode fokus yang diinginkan, hanya efektif jika dimodifikasi sebelum peristiwa DeviceOpened atau OnEnable.

Catatan: Karena batasan 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 dimodifikasi sebelum peristiwa DeviceOpened atau OnEnable.

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

DesiredMinQualityLevel

Tingkat kualitas minimum yang diizinkan, hanya efektif jika dimodifikasi sebelum Assemble().

public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }

DesiredResolution

Resolusi yang diinginkan, hanya efektif jika dimodifikasi 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 dimodifikasi sebelum session dimulai.

public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }

DeviceCameras

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

Menyediakan kamera perangkat yang menyediakan 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; }

DeviceQualityLevel

Mendapatkan kualitas Pelacakan Gerak pada perangkat, dikombinasikan dengan skenario aplikasi, nilai ini dapat digunakan untuk menilai apakah akan memulai Pelacakan Gerak.

public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { 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; }

FrameRateRange

Rentang frame rate. Hanya tersedia saat Opened bernilai true.

public Vector2 FrameRateRange { get; }

IsAvailable

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

Apakah sumber frame saat ini tersedia.

Jika nilainya null, CheckAvailability() akan dipanggil, dan nilainya 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().

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 adegan. Anda harus menangani rendering 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; }

LocalPointCloud

Informasi lokasi data point-cloud 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 true.

public Vector2Int Size { get; }

Metode

Close()

Menutup perangkat.

public void Close()

HitTestAgainstHorizontalPlane(Vector2)

Melakukan Hit Test pada bidang horizontal yang terdeteksi secara real-time dalam pandangan saat ini. Setelah mengetuk bidang horizontal tertentu, 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)

Melakukan Hit Test pada point-cloud 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 sumber frame baru. Ini 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 mengembalikan status internal. 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()

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

public void Open()

Peristiwa

DeviceClosed

Peristiwa penutupan perangkat.

public event Action DeviceClosed

DeviceOpened

Peristiwa pembukaan perangkat, nilai bool menunjukkan keberhasilan.

public event Action<bool, PermissionStatus, string> DeviceOpened