Unity3d 一旦应用程序识别出Vuforia/Unity上的图像目标,如何使文本消失?

Unity3d 一旦应用程序识别出Vuforia/Unity上的图像目标,如何使文本消失?,unity3d,augmented-reality,vuforia,Unity3d,Augmented Reality,Vuforia,如何在应用程序识别图像目标后使文本消失(通过Vuforia) 我正在尝试创建一个AR应用程序,在用户将手机摄像头放在贺卡上之前,它会告诉用户操作说明。当用户将相机投影到贺卡上并识别出与贺卡相关的图像目标之一时,如何使此文本消失 在AR应用程序中使用Unity/Vuforia 在图像检测后生成/可见对象的代码,同一位置只需隐藏文本,如SetActive false 看起来您的要求非常基本,您应该从Vuforia示例开始,覆盖处理目标检测的代码。应该是这样的: public void OnTrac

如何在应用程序识别图像目标后使文本消失(通过Vuforia)

我正在尝试创建一个AR应用程序,在用户将手机摄像头放在贺卡上之前,它会告诉用户操作说明。当用户将相机投影到贺卡上并识别出与贺卡相关的图像目标之一时,如何使此文本消失

  • 在AR应用程序中使用Unity/Vuforia

在图像检测后生成/可见对象的代码,同一位置只需隐藏文本,如SetActive false

看起来您的要求非常基本,您应该从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)
    }
}   

您需要在sdk中Vuforia提供的DefaultTrackableEventHandler脚本的OnTrackableStateChanged中管理UIText对象可见性

公共无效OnTrackableStateChanged( 可跟踪行为。状态优先状态, 可跟踪的行为。状态(状态) { if(newStatus==trackablebehavior.Status.DETECTED|| newStatus==trackablebehavior.Status.TRACKED|| newStatus==trackablebehavior.Status.EXTENDED\u TRACKED) { OnTrackingFound(); } 其他的 { OnTrackingLost(); } }

在OnTrackingFound()函数中,可以执行此操作。
创建一个公共UItext对象,并在unity侧将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();
        }
    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.Events;
使用Vuforia;
公共类ImageTargetBehavior:MonoBehavior,ITrackableEventHandler
{
私人可追踪行为;
公共UnityEvent myStartEvent;
公共UnityEvent myStopEvent;
void Start()
{
mtrackablebhavior=GetComponent();
if(MTrackableBehavior)
{
mtrackablebhavior.RegisterTrackableEventHandler(此);
}
}
公共无效OnTrackableStateChanged(
可跟踪行为。状态优先状态,
可跟踪的行为。状态(状态)
{
if(newStatus==trackablebehavior.Status.DETECTED||
newStatus==trackablebehavior.Status.TRACKED||
newStatus==trackablebehavior.Status.EXTENDED\u TRACKED)
{
//当找到目标时
myStartEvent.Invoke();
}
其他的
{
//当目标丢失时
myStopEvent.Invoke();
}
}
}

您的确切困难不是很清楚-您不是在问如何隐藏文本,对吗?您的意思是您正在代码中寻找您知道目标Vuforia识别什么的位置吗?->。扩展此脚本以实现应用程序的自定义事件处理。@yakobom有一条文本告诉用户:“将手机摄像头指向卡”。我希望当用户将手机摄像头指向卡并且增强现实功能开始工作(通过AR摄像头识别图像目标)时,这个文本就会消失。嗯,我不太清楚你在这里的意思。你能详细介绍一下吗?