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

问题描述 投票:0回答:4

如何使文本消失,一旦应用程序识别图像目标(通过Vuforia)?

我试图创建一个应用AR他们把他们的手机摄像头贺卡上之前,它告诉用户指令。我怎样才能让这个文本消失,一旦用户项目的贺卡上的摄像头,并承认与该卡相关联的图像目标之一?

  • 使用Unity / Vuforia的AR应用
unity3d augmented-reality vuforia
4个回答
0
投票

在这里你写的产卵图像检测后/可见对象的代码,同一个地方只是藏象SETACTIVE假的文本。


0
投票

它看起来像你所问的是很基本的,你应该用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)
    }
}   

0
投票

你需要通过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到公共变量。


0
投票

滴在这个脚本添加任何要启动,并在编辑器中的事件列表停止任何东西。例如,要设置一个游戏物体,以活性或没有。

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();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.