【发布时间】:2018-09-24 01:54:34
【问题描述】:
我正在使用 Unity 和 Vuforia SDK 开发应用程序。
应用程序涉及多个标记。 我需要依次扫描标记。 当检测到一个标记时,将调用 OnTrackingFound 事件处理程序,并在跟踪丢失时触发 OnTrackingLost 事件。
问题是当一个标记被另一个标记替换时,不会触发 OnTrackerLost 事件。
我们可以让 OnTrackLost 被解雇吗?
我分析了这个场景,发现当 Trackable 丢失时,有时不会触发“OnTrackableStateChanged”事件,这就是不触发 OnTrackLost 事件的原因。
有没有什么办法可以让 OnTrackableStateChanged 每次都被触发?
注意:我使用 Unity 和 Vuforia 版本:5.3.2
以下是我使用的代码:
using UnityEngine;
using System.Collections;
public class ImageTargetLoading : MonoBehaviour,ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
void Start()
{
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
}
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
OnTrackingFound();
}
else
{
OnTrackingLost();
}
}
}
“OnTrackableStateChanged”事件有时不会被触发。
【问题讨论】: