如何使文本消失,一旦应用程序识别图像目标(通过Vuforia)?
我试图创建一个应用AR他们把他们的手机摄像头贺卡上之前,它告诉用户指令。我怎样才能让这个文本消失,一旦用户项目的贺卡上的摄像头,并承认与该卡相关联的图像目标之一?
在这里你写的产卵图像检测后/可见对象的代码,同一个地方只是藏象SETACTIVE假的文本。
它看起来像你所问的是很基本的,你应该用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)
}
}
你需要通过Vuforia在SDK中提供DefaultTrackableEventHandler的OnTrackableStateChanged脚本来管理UIText对象的知名度。
公共无效OnTrackableStateChanged(TrackableBehaviour.Status previousStatus,TrackableBehaviour.Status NEWSTATUS){如果(NEWSTATUS == TrackableBehaviour.Status.DETECTED || NEWSTATUS == TrackableBehaviour.Status.TRACKED || NEWSTATUS == TrackableBehaviour.Status.EXTENDED_TRACKED){OnTrackingFound() ; }否则{OnTrackingLost(); }}
在OnTrackingFound()函数,你可以做到这一点。创建一个公共UItext对象,团结侧拖动UItext到公共变量。
滴在这个脚本添加任何要启动,并在编辑器中的事件列表停止任何东西。例如,要设置一个游戏物体,以活性或没有。
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();
}
}
}