CameraDeviceFrameSource Class¶
Description¶
在场景中控制 CameraDevice 的 MonoBehaviour ,在Unity环境下提供功能扩展。如有需要可以直接使用 CameraDeviceFrameSource.Device 。
这个frame source不是运动跟踪设备,在 ARSession 中不会输出运动数据。
如果要在运行时选择 frame source,可以deactive Camera GameObject,并设置所有frame source可用性检查所需要的数值,然后在这个frame source被选择后active Camera GameObject。
Enums¶
public enum CameraDeviceFrameSource.CameraDeviceOpenMethod |
CameraDevice 开启方式。 |
MonoBehaviour Messages¶
protected override void OnEnable() |
protected override void OnDisable() |
protected virtual void OnDestroy() |
protected virtual void Awake() |
Fields¶
FocusMode¶
- C#
public CameraDeviceFocusMode FocusMode
创建 CameraDeviceFrameSource.Device 时使用的聚焦模式,只在创建时使用。
CameraSize¶
- C#
public Vector2 CameraSize
创建 CameraDeviceFrameSource.Device 时使用的图像大小,只在创建时使用。
CameraOpenMethod¶
- C#
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod
创建 CameraDeviceFrameSource.Device 时使用的方法,只在创建时使用。
CameraType¶
- C#
public CameraDeviceType CameraType
创建 CameraDeviceFrameSource.Device 时使用的Camera类型,只在创建时 CameraDeviceFrameSource.CameraOpenMethod == CameraDeviceFrameSource.CameraDeviceOpenMethod.DeviceType 的时候使用。
CameraIndex¶
- C#
public int CameraIndex
创建 CameraDeviceFrameSource.Device 时使用的设备索引,只在创建时 CameraDeviceFrameSource.CameraOpenMethod == CameraDeviceFrameSource.CameraDeviceOpenMethod.DeviceIndex 的时候使用。
Properties¶
Device¶
- C#
public CameraDevice Device { get; }
EasyAR Sense API,如果功能可以使用,可以在 CameraDeviceFrameSource.DeviceCreated 和 CameraDeviceFrameSource.DeviceClosed 事件之间访问。
IsAvailable¶
- C#
public override Optional<bool> IsAvailable { get; }
当前frame source是否可用。
如果数值等于null,需要调用 FrameSource.CheckAvailability ,数值将在 Coroutine 结束后可以访问。这个属性会在 ARComponentPicker 选择frame source的时候使用。
AvailableCenterMode¶
- C#
public override IReadOnlyList< ARSession.ARCenterMode > AvailableCenterMode { get; }
该frame source可以使用的中心模式。
CameraPreference¶
- C#
public CameraDevicePreference CameraPreference { get; set; }
创建 CameraDeviceFrameSource.Device 时使用的Camera偏好设置,只在创建时使用。它会同时控制对焦模式到推荐使用值,如果需要使用特定对焦模式,需要在修改这个值之后重新设置对焦模式。
Parameters¶
- C#
public CameraParameters Parameters { get; set; }
创建 CameraDeviceFrameSource.Device 时使用的相机参数,只在创建时使用。这个参数是高级设置,会覆盖 CameraDeviceFrameSource.CameraSize 等其它值。
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后无法修改。
Origin¶
- C#
public virtual GameObject Origin { get; }
ARSession 的原点,如果frame source可以输出运动跟踪数据。
每种运动跟踪frame source都有自己的方法来设置包含特定组件的原点物体。如果原点未设置,一些frame source会从场景中active的物体中自动选择可以使用的物体或创建一个新的物体。
Events¶
DeviceCreated¶
- C#
public event Action DeviceCreated
DeviceOpened¶
- C#
public event Action DeviceOpened
DeviceClosed¶
- C#
public event Action DeviceClosed
Methods¶
Open¶
- C#
public void Open()
打开设备。
Close¶
- C#
public void Close()
关闭设备。
CheckAvailability¶
- C#
public virtual System.Collections.IEnumerator CheckAvailability()
FrameSource.IsAvailable 等于null时用于检查frame source是否可用的 Coroutine 。