根据跟踪状态实现相应功能
TrackableBehaviour.Status.DETECTED//检测到TrackableBehaviour.Status.EXTENDED_TRACKED//延伸跟踪TrackableBehaviour.Status.NOT_FOUND//未找到TrackableBehaviour.Status.TRACKED//跟踪中TrackableBehaviour.Status.UNDEFINED//未定义的TrackableBehaviour.Status.UNKNOWN//未知的
public class MyPrefabInstantiator : MonoBehaviour, ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
public Transform myModelPrefab;
// Use this for initialization
void Start ()
{
mTrackableBehaviour = GetComponent();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
}
public void onTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
onTrackingFound();
}
}
private void onTrackingFound()
{
if (myModelPrefab != null)
{
Transform myModelTrf = GameObject.Instantiate(myModelPrefab) as Transform;
myModelTrf.parent = mTrackableBehaviour.transform;
myModelTrf.localPosition = new Vector3(0f, 0f, 0f);
myModelTrf.localRotation = Quaternion.identity;
myModelTrf.localScale = new Vector3(0.0005f, 0.0005f, 0.0005f);
myModelTrf.gameObject.active = true;
}
}
}
本文介绍了一个Unity脚本,用于处理增强现实(AR)环境中对象的跟踪状态变化。该脚本通过检测不同跟踪状态来实现对象的实例化和位置调整。
4078

被折叠的 条评论
为什么被折叠?



