
этот пример приложения работает, когда он нашел допустимое целевое изображение, отобразится трехмерный куб и начнет вращаться. Мой вопрос заключается в том, что во время сканирования телефона в поисках целевого изображения должно появиться сообщение «Сканирование целевого изображения», и при его обнаружении отображается «Цель изображения найдена», а также отображается всплывающая кнопка «Показать», при нажатии которой появляется куб.
Код: Выделить всё
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RotateScript : MonoBehaviour {
public int speed;
//Update is called once per frame
void Update () {
transform.Rotate (new Vector3 (0, Time.deltaTime * speed, 0));
}
}
Я нашел этот скрипт и немного изменил его для отображения текст пользовательского интерфейса над экраном, я намерен изменить текст на «Цель изображения потеряна», когда цель изображения не обнаружена, и «Цель изображения найдена», когда цель изображения присутствует. Я поместил сценарий в целевой префаб изображения, но он отображает ошибку «Текстовая ошибка пользовательского интерфейса». Любые предложения о том, где я сделал неправильно. Спасибо
Пример кода
Код: Выделить всё
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Vuforia;
public class TextScript : MonoBehaviour, ITrackableEventHandler {
private TrackableBehaviour mTrackableBehaviour;
//Declares a UI text
Text uiText;
void Start () {
mTrackableBehaviour = GetComponent();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
//uiText = gameObject.GetComponent ();
}
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED)
{
uiText.text = "Image Target Found";
}
else
{
uiText.text = "Image Target Lost";
}
}
}
Извините, если Я обновляюсь поздно, я перепробовал все решения, которые вы предлагаете, но они все равно не работают. Имя кода — TextScript, и я прикрепил его к целевому изображению, но результат все равно не удался. Вот пример кода.
TextScript
Код: Выделить всё
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Vuforia;
public class TextScript : MonoBehaviour, ITrackableEventHandler {
private TrackableBehaviour mTrackableBehaviour;
//Declares a UI text
public Text uiText;
void Start () {
mTrackableBehaviour = GetComponent();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
uiText = gameObject.GetComponent ();
}
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
OnTrackingFound();
uiText.text = "Image Target Found";
}
else
{
OnTrackingLost();
//uiText.text = "Image Target Lost";
}
}
private void OnTrackingFound()
{
Renderer[] rendererComponents = GetComponentsInChildren(true);
Collider[] colliderComponents = GetComponentsInChildren(true);
// Enable rendering:
foreach (Renderer component in rendererComponents)
{
uiText.text = "Image Target Found";
component.enabled = true;
}
// Enable colliders:
foreach (Collider component in colliderComponents)
{
uiText.text = "Image Target Found";
component.enabled = true;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
}
private void OnTrackingLost()
{
Renderer[] rendererComponents = GetComponentsInChildren(true);
Collider[] colliderComponents = GetComponentsInChildren(true);
// Disable rendering:
foreach (Renderer component in rendererComponents)
{
uiText.text = "Image Target Lost";
component.enabled = false;
}
// Disable colliders:
foreach (Collider component in colliderComponents)
{
uiText.text = "Image Target Lost";
component.enabled = false;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
}
}
Я уже называю текстовый интерфейс «Сканирование», поэтому, когда я нажимаю «Воспроизвести», текст уже отображает указанное слово. Но когда он нашел цель изображения, текст не меняется. Пожалуйста, ребята, мне очень нужна была ваша помощь. Если есть нежелательный код, пожалуйста, отредактируйте его или прокомментируйте, чтобы я мог его удалить. Спасибо
Подробнее здесь: https://stackoverflow.com/questions/466 ... nd-vuforia