ARSceneTrackerBaseBehaviour Class

Inherits: DeviceUserAbstractBehaviour

Description

EasyAR 的SLAM功能在 Android 和 iOS 设备上做了专门优化。不推荐在 Windows 和 Mac 上运行SLAM,算法效果将完全不同。Windows 和 Mac 上的SLAM只用于开发中简化内容创建。

ARSceneTrackerBaseBehaviour 是在AR场景中控制ARSceneTracker的component。

ARSceneTracker实现了SLAM功能。你可以通过StartTrack/StopTrack来开始和停止跟踪。StartTrack 和StopTrack 是非常轻量的调用。

一个 ARSceneTrackerBaseBehaviour 需要 Bind 到一个 DeviceAbstractBehaviour 才能正常工作。如果在一切启动之前 ARSceneTrackerBaseBehaviour 就已经在场景中,这个工作通常会由 ARBuilder 自动完成。如果你在后面某个时刻将这个 component 添加到场景中,请保证调 Bind 它到一个 DeviceAbstractBehaviour 上,比如 Bind 到一个 CameraDeviceBaseBehaviour 上。

对于ARSceneTrackerBaseBehaviour,不推荐和其他tracker一样在一切启动之前放置在场景中。通常在用户对着需要的位置之后手动 BindDeviceAbstractBehaviour 并启动tracker会是更好的选择,这将会让 tracker 初始化target 到用户指定的位置。如果ARSceneTrackerBaseBehaviour 在场景中被 ARBuilder BindDeviceAbstractBehaviour ,它将在相机启动时开始跟踪并初始化target位置,通常这个地方不是用户期望的位置。

ARSceneBaseBehaviour 必须先被放到场景中它内部的target才能被跟踪。

当 target 被检测到或丢失的时候,可以收到 TargetAbstractBehaviour.TargetFound / TargetAbstractBehaviour.TargetLost 以及 ARCameraBaseBehaviour.TargetFound / ARCameraBaseBehaviour.TargetLost 事件。

你可以使用 ARCameraBaseBehaviour.FrameUpdate 来获取一帧 Frame 。Frame中包含当前的camera图像和跟踪到的 TargetInstance

Public Functions

bool StartTrack()
bool StopTrack()

Overwritten MonoBahaviour Functions

protected virtual void Awake()
protected virtual void OnDestroy()
protected virtual void Start()

bool StartTrack()

开始跟踪。跟踪只有在 behaviour 被 Bind 到一个 DeviceAbstractBehaviour 之后才会开始。如果在一切启动之前 ARSceneTrackerBaseBehaviour 就已经在场景中,这个工作通常会由 ARBuilder 自动完成。

bool StopTrack()

停止跟踪。可以通过StartTrack来再次开启跟踪功能。