MotionTrackerFrameSource Class

Description

在场景中控制 MotionTrackerCameraDevice 的 MonoBehaviour ,在Unity环境下提供功能扩展。

这个frame source是一种运动跟踪设备,在 ARSession 中会输出运动数据。


Properties

enabled

C#

public bool enabled { get; set; }

ARSession 运行时开始/停止采集视频流数据。在session启动后, MonoBehaviour .enabled为true时才会开始采集。

Opened

C#

public bool Opened { get; }

相机是否打开。

DeviceQualityLevel

C#

public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }

获取设备上Motion Tracking的质量,结合应用场景,可以通过此值判断是否启动Motion Tracking。

FrameRateRange

C#

public Vector2 FrameRateRange { get; }

帧率范围。仅在 MotionTrackerFrameSource.Opened 为true时可用。

Size

C#

public Vector2Int Size { get; }

当前图像大小。仅在 MotionTrackerFrameSource.OpenedMonoBehaviour .enabled都为true时可用。

LocalPointCloud

C#

public List< Vector3 > LocalPointCloud { get; }

当前点云数据位置信息。仅在 MotionTrackerFrameSource.Opened 为true时可用。

DesiredFocusMode

C#

public Optional< MotionTrackerCameraDeviceFocusMode > DesiredFocusMode { get; set; }

期望的对焦模式,在 MotionTrackerFrameSource.DeviceOpened 事件或OnEnable前修改才有效。

注意:受硬件或系统限制,对焦开关在一些设备上可能无效。

DesiredResolution

C#

public Optional< MotionTrackerCameraDeviceResolution > DesiredResolution { get; set; }

期望的分辨率,在 MotionTrackerFrameSource.DeviceOpened 事件或OnEnable前修改才有效。

如果在 FrameRecorder 录制过程中修改了图像大小,录制数据将停止更新,需要关闭之后重新录制。

DesiredFrameRate

C#

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

期望的设备帧率,在 MotionTrackerFrameSource.DeviceOpened 事件或OnEnable前修改才有效。

DesiredMinQualityLevel

C#

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

期望的最低允许的质量级别,在 ARSession.Assemble 前修改才有效。

DesiredTrackingMode

C#

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

期望的跟踪模式,在session启动前修改才有效。

CameraCandidate

C#

public Camera CameraCandidate { get; set; }

MotionTrackerFrameSource.Camera 的备选,仅当未使用Unity XR Origin时有效,如未设置会使用Camera.main。


Events

DeviceOpened

C#

public event Action<bool, PermissionStatus , string> DeviceOpened

设备打开的事件,bool值表示是否成功。

DeviceClosed

C#

public event Action DeviceClosed

设备关闭的事件。


Methods

Open

C#

public void Open()

打开设备。如果未手动调用 MotionTrackerFrameSource.OpenMotionTrackerFrameSource.CloseARSession 启动后会自动 MotionTrackerFrameSource.Open

Close

C#

public void Close()

关闭设备。

HitTestAgainstHorizontalPlane

C#

public List< Vector3 > HitTestAgainstHorizontalPlane( Vector2 pointInView)

在当前视野内实时检测到的水平面上进行Hit Test,点击到某个水平面后返回该平面上距离Hit Test射线最近的3D点的位置坐标。 pointInView 需要被归一化到[0, 1]^2。

HitTestAgainstPointCloud

C#

public List< Vector3 > HitTestAgainstPointCloud( Vector2 pointInView)

在当前点云中进行Hit Test,得到距离相机从近到远一条射线上的最近的一个3D点位置坐标。 pointInView 需要被归一化到[0, 1]^2。