一旦应用程序识别出图像目标(通过Vuforia),如何使文本消失?
我正在尝试创建一个AR应用程序,在用户将他们的手机摄像头放在贺卡上之前,它会告诉用户指示。当用户将相机投影到贺卡上并识别与贺卡相关的图像目标时,如何使此文本消失?
发布于 2018-04-01 03:57:15
看起来,您所要求的是非常基本的,您应该从Vuforia示例开始,重写处理目标检测的代码。应该是这样的:
public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
// hide your text here
}
else
{
// show your text here (or do anything else you wish to do)
}
} 发布于 2018-04-05 03:02:18
您需要在UIText中的Vuforia提供的OnTrackableStateChanged of DefaultTrackableEventHandler脚本中管理DefaultTrackableEventHandler对象的可见性。
公共无效OnTrackableStateChanged( TrackableBehaviour.Status previousStatus,TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED而经TrackableBehaviour.Status.DETECTED newStatus == TrackableBehaviour.Status.TRACKED TrackableBehaviour.Status.DETECTED newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { OnTrackingFound();{ OnTrackingLost();}}
在OnTrackingFound()函数中,您可以这样做。创建一个公共UItext对象,并在统一端将UItext拖到该公共变量。
发布于 2019-02-09 21:41:11
删除此脚本,在编辑器中的事件列表中添加任何要启动和停止的内容。例如,将GameObject设置为活动与否。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using Vuforia;
public class ImageTargetBehaviour : MonoBehaviour, ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
public UnityEvent myStartEvent;
public UnityEvent myStopEvent;
void Start()
{
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
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)
{
// When target is found
myStartEvent.Invoke();
}
else
{
// When target is lost
myStopEvent.Invoke();
}
}
}https://stackoverflow.com/questions/49534328
复制相似问题