Table of Contents

Class FrameSource

命名空间
easyar
程序集
EasyAR.Sense.dll

一个frame source代表frame输入数据的数据源,它提供图像数据或同时提供运动数据。

你可以通过继承FrameSource的一些子类型来实现自定义相机,但你不能直接继承FrameSource。自定义相机通常表达一个新的设备或新的数据输入方式。

在自定义相机或头显上使用试用产品(个人版license、试用版XR license或试用版Mega服务等)时,EasyAR Sense每次启动后会在固定的有限时间内停止响应。

[DisallowMultipleComponent]
public abstract class FrameSource : MonoBehaviour
继承
FrameSource
Derived

属性

AvailableCenterMode

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

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

protected virtual IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

Camera

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

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

protected abstract Camera Camera { get; }

CameraFrameStarted

仅当创建一个新的frame source时提供。它会在ARSession的整个生命周期内被访问。

相机帧是否开始输入。

protected abstract bool CameraFrameStarted { get; }

DeviceCameras

仅当创建一个新的frame source时提供。它会在CameraFrameStarted为true时被访问。

提供相机帧数据的设备相机。如果相机帧数据由多个相机提供,列表中需要包含所有相机。

确保在CameraFrameStarted为true时数值正确。

protected abstract List<FrameSourceCamera> DeviceCameras { get; }

Display

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

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

protected abstract IDisplay Display { get; }

IsAvailable

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

当前frame source是否可用。

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

protected abstract Optional<bool> IsAvailable { get; }

IsCameraUnderControl

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

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

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

protected abstract bool IsCameraUnderControl { get; }

IsHMD

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

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

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

protected abstract bool IsHMD { get; }

方法

CheckAvailability()

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

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

protected virtual IEnumerator CheckAvailability()

OnSessionStart(ARSession)

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

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

protected abstract void OnSessionStart(ARSession session)

参数

session

OnSessionStop()

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

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

protected abstract void OnSessionStop()