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一样在一切启动之前放置在场景中。通常在用户对着需要的位置之后手动 Bind 到 DeviceAbstractBehaviour 并启动tracker会是更好的选择,这将会让 tracker 初始化target 到用户指定的位置。如果ARSceneTrackerBaseBehaviour 在场景中被 ARBuilder Bind 到 DeviceAbstractBehaviour ,它将在相机启动时开始跟踪并初始化target位置,通常这个地方不是用户期望的位置。
ARSceneBaseBehaviour 必须先被放到场景中它内部的target才能被跟踪。
当 target 被检测到或丢失的时候,可以收到 TargetAbstractBehaviour.TargetFound / TargetAbstractBehaviour.TargetLost 以及 ARCameraBaseBehaviour.TargetFound / ARCameraBaseBehaviour.TargetLost 事件。
你可以使用 ARCameraBaseBehaviour.FrameUpdate 来获取一帧 Frame 。Frame中包含当前的camera图像和跟踪到的 TargetInstance 。
Public Functions¶
Overwritten MonoBahaviour Functions¶
bool StartTrack()¶
开始跟踪。跟踪只有在 behaviour 被 Bind 到一个 DeviceAbstractBehaviour 之后才会开始。如果在一切启动之前 ARSceneTrackerBaseBehaviour 就已经在场景中,这个工作通常会由 ARBuilder 自动完成。
bool StopTrack()¶
停止跟踪。可以通过StartTrack来再次开启跟踪功能。