ObjectTrackerBaseBehaviour Class

Inherits: DeviceUserAbstractBehaviour

Description

ObjectTrackerBaseBehaviour 是在AR场景中控制ObjectTracker的component。

ObjectTracker可以检测和跟踪3D物体。ObjectTracker检测和跟踪 ObjectTarget 。你可以通过StartTrack/StopTrack来开始和停止跟踪。StartTrack 和StopTrack 是非常轻量的调用。

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

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

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

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

Public Properties

List<ObjectTargetBaseBehaviour> LoadedTargetBehaviours
int SimultaneousNum

Public Functions

void LoadObjectTargetBehaviour(ObjectTargetBaseBehaviour ObjectTargetBaseBehaviour)
void UnloadObjectTargetBehaviour(ObjectTargetBaseBehaviour ObjectTargetBaseBehaviour)
bool StartTrack()
bool StopTrack()

Public Events

event Action<ObjectTrackerBaseBehaviour, ObjectTargetBaseBehaviour, Target, bool> TargetLoad
event Action<ObjectTrackerBaseBehaviour, ObjectTargetBaseBehaviour, Target, bool> TargetUnload

Overwritten MonoBahaviour Functions

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

List<ObjectTargetBaseBehaviour> LoadedTargetBehaviours

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

int SimultaneousNum

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

void LoadObjectTargetBehaviour(ObjectTargetBaseBehaviour ObjectTargetBaseBehaviour)

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

void UnloadObjectTargetBehaviour(ObjectTargetBaseBehaviour ObjectTargetBaseBehaviour)

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

bool StartTrack()

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

bool StopTrack()

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

event Action<ObjectTrackerBaseBehaviour, ObjectTargetBaseBehaviour, Target, bool> TargetLoad

Target加载事件。

event Action<ObjectTrackerBaseBehaviour, ObjectTargetBaseBehaviour, Target, bool> TargetUnload

Target卸载事件。