CameraDeviceFrameSource Class

Description

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

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


Enums

public enum CameraDeviceFrameSource.CameraDeviceOpenMethod

CameraDevice 开启方式。


MonoBehaviour Messages

private void Awake()

private void OnEnable()

private void OnDisable()

private void OnDestroy()


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 事件之间访问。

CameraPreference

C#

public CameraDevicePreference CameraPreference { get; set; }

创建 CameraDeviceFrameSource.Device 时使用的Camera偏好设置,只在创建时使用。它会同时控制对焦模式到推荐使用值,如果需要使用特定对焦模式,需要在修改这个值之后重新设置对焦模式。

Parameters

C#

public CameraParameters Parameters { get; set; }

创建 CameraDeviceFrameSource.Device 时使用的相机参数,只在创建时使用。这个参数是高级设置,会覆盖 CameraDeviceFrameSource.CameraSize 等其它值。

Index

C#

public Optional<int> Index { get; }

cameras索引。

CameraCount

C#

public static int CameraCount { get; }

获得操作系统识别到的camera数量。

CameraCandidate

C#

public Camera CameraCandidate { get; set; }

CameraDeviceFrameSource.Camera 的备选,如果没设置,将会自动从场景中获取或生成。

IsHMD

C#

internal protected override bool IsHMD { }

仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。

当前frame source是否是头显。如果是头显,诊断信息将显示在相机前的3D板子上。

部分frame filter在设备上运行会有不同。

Camera

C#

internal protected override Camera Camera { }

仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。

在桌面设备或手机上,该相机代表现实环境中相机设备在虚拟世界中对应的 Camera ,其投影矩阵和位置都将与真实相机对应,受EasyAR控制。在头显上,该相机仅用于将一些诊断文字展示在眼前,不用于画面渲染,相机也不受EasyAR控制。

Display

C#

internal protected override IDisplay Display { }

仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。

提供显示系统信息。你可以使用 Display.DefaultSystemDisplayDisplay.DefaultHMDDisplay 来获取默认的显示信息。

IsCameraUnderControl

C#

internal protected override bool IsCameraUnderControl { }

仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。

当值为ture时,session 会更新相机的transform,且会渲染相机图像.

在创建头显扩展时,它应为false。你应该完全控制场景中的3D相机。你应该处理相机渲染,尤其是在VST模式下。

IsAvailable

C#

internal protected override Optional<bool> IsAvailable { }

仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。

当前frame source是否可用。

如果数值等于null, FrameSource.CheckAvailability 会被调用,数值将在 Coroutine 结束后获取。

AvailableCenterMode

C#

internal protected override IReadOnlyList< ARSession.ARCenterMode > AvailableCenterMode { }

仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。

所有可以使用的中心模式。


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()

关闭设备。

OnSessionStart

C#

private override void OnSessionStart( ARSession session)

仅当创建一个新的frame source时提供。它仅会在 ARSession.StartSession 过程中被访问。

处理session启动,如果这个frame source已经组装进 ARSession.Assembly 。这个方法设计上是用来做延迟初始化的,你可以在这个方法中做AR独有的初始化工作。

OnSessionStop

C#

private override void OnSessionStop()

仅当创建一个新的frame source时提供。它会在 ARSession.StopSession 或其它session停止/损坏过程中被访问。

处理session停止,如果这个frame source已经组装进 ARSession.Assembly 。你可以使用这个方法销毁 ARSession.StartSession 以及session运行中创建的资源并恢复内部状态。在session销毁之前这个方法会被保证调用。如果frame source在sessino之前销毁,它将不会被调用,且session将损坏。

CheckAvailability

C#

private virtual System.Collections.IEnumerator CheckAvailability()

仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。

FrameSource.IsAvailable 等于null时用于检查frame source是否可用的 Coroutine