Приложение дополненной реальности с использованием Unity и vuforiaAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Приложение дополненной реальности с использованием Unity и vuforia

Сообщение Anonymous »

Добрый день всем, в настоящее время я создаю свое первое AR-приложение с использованием Unity и vuforia SDK. Я уже знаю некоторые основы AR: вам нужна цель изображения для отображения трехмерного объекта или информации, связанной с целью изображения. У меня есть вращающийся куб дополненной реальности

Изображение


этот пример приложения работает, когда он нашел допустимое целевое изображение, отобразится трехмерный куб и начнет вращаться. Мой вопрос заключается в том, что во время сканирования телефона в поисках целевого изображения должно появиться сообщение «Сканирование целевого изображения», и при его обнаружении отображается «Цель изображения найдена», а также отображается всплывающая кнопка «Показать», при нажатии которой появляется куб.

Код: Выделить всё

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";
}
}
}
Обновление (30.10.2017)

Извините, если Я обновляюсь поздно, я перепробовал все решения, которые вы предлагаете, но они все равно не работают. Имя кода — 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");
}
}
PS

Я уже называю текстовый интерфейс «Сканирование», поэтому, когда я нажимаю «Воспроизвести», текст уже отображает указанное слово. Но когда он нашел цель изображения, текст не меняется. Пожалуйста, ребята, мне очень нужна была ваша помощь. Если есть нежелательный код, пожалуйста, отредактируйте его или прокомментируйте, чтобы я мог его удалить. Спасибо

Подробнее здесь: https://stackoverflow.com/questions/466 ... nd-vuforia
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»