ImageTrackerBaseBehaviour Class

Inherits: DeviceUserAbstractBehaviour

Description

ImageTrackerBaseBehaviour 是在AR场景中控制ImageTracker的component。

ImageTracker可以检测和跟踪平面图像。ImageTracker检测和跟踪 ImageTarget 。你可以通过StartTrack/StopTrack来开始和停止跟踪。StartTrack 和StopTrack 是非常轻量的调用。

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

ImageTargetBaseBehaviour 必须先被加载到ImageTrackerBaseBehaviour中它内部的target才能被跟踪。加载可以通过显式调用 LoadImageTargetBehaviour 或调用 ImageTargetBaseBehaviour.Bind 隐式实现。

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

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

Public Properties

ImageTrackerMode Mode
List<ImageTargetBaseBehaviour> LoadedTargetBehaviours
int SimultaneousNum

Public Functions

void LoadImageTargetBehaviour(ImageTargetBaseBehaviour imageTargetBaseBehaviour)
void UnloadImageTargetBehaviour(ImageTargetBaseBehaviour imageTargetBaseBehaviour)
bool StartTrack()
bool StopTrack()

Public Events

event Action<ImageTrackerBaseBehaviour, ImageTargetBaseBehaviour, Target, bool> TargetLoad
event Action<ImageTrackerBaseBehaviour, ImageTargetBaseBehaviour, Target, bool> TargetUnload

Overwritten MonoBahaviour Functions

protected virtual void OnDestroy()
protected virtual void Start()
protected virtual void Update()

ImageTrackerMode Mode

(since 2.2.0) 在2.2.0中,我们增强了跟踪的质量,但在低端手机上可能会运行更慢和更耗能。默认的模式是 ImageTrackerMode.PreferQuality ,可以在编辑器中或在启动之前将该值设为 ImageTrackerMode.PreferPerformance 来获得更好的性能,但是跟踪效果会有些许损失。

List<ImageTargetBaseBehaviour> LoadedTargetBehaviours

当前加载进这个component的所有ImageTargetBaseBehaviour。

int SimultaneousNum

最大可被tracker跟踪的目标个数。默认值为1。

void LoadImageTargetBehaviour(ImageTargetBaseBehaviour imageTargetBaseBehaviour)

将ImageTargetBaseBehaviour以及它内部的target加载进这个component。只能在没有调用 ImageTargetBaseBehaviour.Bind 的时候调用这个方法。详见 ImageTargetBaseBehaviour.Bind

void UnloadImageTargetBehaviour(ImageTargetBaseBehaviour imageTargetBaseBehaviour)

从这个component中卸载ImageTargetBaseBehaviour和它的target。

bool StartTrack()

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

bool StopTrack()

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

event Action<ImageTrackerBaseBehaviour, ImageTargetBaseBehaviour, Target, bool> TargetLoad

Target加载事件。

event Action<ImageTrackerBaseBehaviour, ImageTargetBaseBehaviour, Target, bool> TargetUnload

Target卸载事件。