VIOCameraDeviceUnion Class¶
这个类型已经废弃并将在今后的版本中删除。请停止继续使用。
VIOCameraDeviceUnion is obsolete and will be removed in the future. Please re-create your AR Session from 'GameObject' menu or context menu in 'Hierarchy' window. You can find replacement for VIOCameraDeviceUnion from 'EasyAR Sense -> Motion Tracking -> AR Session (Motion Tracking Preset)'.
Description¶
在场景中控制VIO相机设备( MotionTrackerCameraDevice 、 ARKitCameraDevice 、 ARCoreCameraDevice )的 MonoBehaviour ,在Unity环境下提供功能扩展。如有需要可以直接使用 VIOCameraDeviceUnion.Device 。
Enums¶
public enum VIOCameraDeviceUnion.DeviceChooseStrategy |
选择VIO设备的策略。 |
Classes¶
public class VIOCameraDeviceUnion.DeviceUnion |
VIO设备的集合。 |
public class VIOCameraDeviceUnion.MotionTrackerCameraDeviceParameters |
运动跟踪参数。 |
MonoBehaviour Messages¶
protected override void Awake() |
protected override void OnEnable() |
protected override void OnDisable() |
protected virtual void OnDestroy() |
Fields¶
DeviceStrategy¶
- C#
public VIOCameraDeviceUnion.DeviceChooseStrategy DeviceStrategy
选择VIO设备的策略。
DesiredMotionTrackerParameters¶
- C#
public VIOCameraDeviceUnion.MotionTrackerCameraDeviceParameters DesiredMotionTrackerParameters
期望的运动跟踪参数,只在 VIOCameraDeviceUnion.Device 启动时使用。只有在使用 MotionTrackerCameraDevice 时有效。
CalibrationDownloaderTimeout¶
- C#
public float CalibrationDownloaderTimeout
使用 VIOCameraDeviceUnion.CheckAvailability 检查设备是否支持时从服务器更新设备列表的超时时间(秒)。设置数值小于等于 0 可以跳过从服务器获取数据。
Properties¶
Device¶
- C#
public VIOCameraDeviceUnion.DeviceUnion Device { get; }
EasyAR Sense API (Union),如果功能可以使用,可以在 VIOCameraDeviceUnion.DeviceCreated 和 VIOCameraDeviceUnion.DeviceClosed 事件之间访问。
IsAvailable¶
- C#
public override Optional<bool> IsAvailable { get; }
当前frame source是否可用。
如果数值等于null,需要调用 FrameSource.CheckAvailability ,数值将在 Coroutine 结束后可以访问。这个属性会在 ARComponentPicker 选择frame source的时候使用。
WorldRoot¶
- C#
public WorldRootController WorldRoot { get; set; }
相机运动的相对物体,如果没设置,将会自动从场景中获取或生成。
Origin¶
- C#
public override GameObject Origin { get; }
ARSession 的原点,如果frame source可以输出运动跟踪数据。
每种运动跟踪frame source都有自己的方法来设置包含特定组件的原点物体。如果原点未设置,一些frame source会从场景中active的物体中自动选择可以使用的物体或创建一个新的物体。
AvailableCenterMode¶
- C#
public virtual IReadOnlyList< ARSession.ARCenterMode > AvailableCenterMode { get; }
该frame source可以使用的中心模式。
Camera¶
- C#
public virtual Camera Camera { get; set; }
在一个 ARSession 中被该frame source使用的 Camera 。
每种frame source都有自己的方法来检查camera是否可用,设置不可用的camera将会被拒绝。这个属性会在 ARComponentPicker 选择frame source时用来判断frame source是否可用。在这个过程中,如果数值没有设置,一些frame source会从场景中active的物体中自动选择可以使用的 Camera 。你可以在session start前设置可用的 Camera 。如果这个frame source被 ARSession 选用,这个数值将在session ready后无法修改。
Events¶
DeviceCreated¶
- C#
public event Action DeviceCreated
VIOCameraDeviceUnion.Device 创建的事件。
DeviceOpened¶
- C#
public event Action DeviceOpened
VIOCameraDeviceUnion.Device 打开的事件。
DeviceClosed¶
- C#
public event Action DeviceClosed
VIOCameraDeviceUnion.Device 关闭的事件。
Methods¶
CheckAvailability¶
- C#
public override System.Collections.IEnumerator CheckAvailability()
FrameSource.IsAvailable 等于null时用于检查frame source是否可用的 Coroutine 。
HitTestAgainstHorizontalPlane¶
在当前视野内实时检测到的水平面上进行Hit Test,点击到某个水平面后返回该平面上距离Hit Test射线最近的3D点的位置坐标。 pointInView 需要被归一化到[0, 1]^2。
HitTestAgainstPointCloud¶
在当前点云中进行Hit Test,得到距离相机从近到远一条射线上的最近的一个3D点位置坐标。 pointInView 需要被归一化到[0, 1]^2。
Open¶
- C#
public void Open()
打开设备。
Close¶
- C#
public void Close()
关闭设备。