AREngineFrameSource Class

Description

在场景中将AREngine相机设备的输出连接到EasyAR输入的自定义frame source。通过EasyAR Sense的自定义相机功能提供华为AR Engine支持。

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

这个frame source不使用 华为 AR Engine Unity SDK ,无需添加。

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


MonoBehaviour Messages

protected virtual void Awake()

protected virtual void OnEnable()

protected virtual void OnDisable()


Fields

AutoFocus

C#

public bool AutoFocus

设置打开设备时的对焦模式。注意:受硬件或系统限制,自动对焦开关在一些设备上可能无效。

DeviceListDownloaderTimeout

C#

public float DeviceListDownloaderTimeout

使用 AREngineFrameSource.CheckAvailability 检查设备是否支持时从服务器更新设备列表的超时时间(秒)。设置数值小于 0 可以跳过从服务器获取数据。

AlwaysWaitDeviceListUpdate

C#

public bool AlwaysWaitDeviceListUpdate

默认情况下,如果设备在当前列表数据下可以使用, AREngineFrameSource.CheckAvailability 将立即返回,列表将在下次运行时更新。如果需要确保列表在每次运行时更新,可以打开这个选项。


Properties

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后无法修改。


Methods

CheckAvailability

C#

public override System.Collections.IEnumerator CheckAvailability()

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

Open

C#

public void Open()

打开设备。

Close

C#

public void Close()

关闭设备。