CameraDeviceFrameSource Class

Description

在场景中控制 CameraDeviceMonoBehaviour ,在Unity环境下提供功能扩展。如有需要可以直接使用 CameraDeviceFrameSource.Device

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

如果要在运行时选择 frame source,可以deactive Camera GameObject,并设置所有frame source可用性检查所需要的数值,然后在这个frame source被选择后active Camera GameObject。



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.DeviceCreatedCameraDeviceFrameSource.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

CameraDeviceFrameSource.Device 创建的事件。

DeviceOpened

C#

public event Action DeviceOpened

CameraDeviceFrameSource.Device 打开的事件。

DeviceClosed

C#

public event Action DeviceClosed

CameraDeviceFrameSource.Device 关闭的事件。


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