2016-05-27 1 views
2

Я успешно разработал приложение AR для обнаружения объектов 3D. Когда показан 3D-объект, при обнаружении приложение показывает некоторые игровые объекты 3d Unity, которые являются иерархическими в объектном треке vuforia. Я хочу предоставить пользователям опцию в случае, если у них нет объекта 3d для обнаружения, просто имитируйте, как если бы объект был обнаружен, и покажите связанные 3D-объекты одним нажатием кнопки. Может ли кто-нибудь мне помочь?vuforia single pause отслеживание или увеличение

ответ

0

Я бы предположил, что у вас есть методы OnTrackingFound/OnTrackingLost. Внутри он устанавливает все объекты (или родительские). Вам просто нужно сказать, что вы хотите только один:

public GameObject objA, objB, objC; 
private GameObject currentObj = null; 
private bool isTracking = false; 
private void Start() 
{ 
    if(objA == null) { Debug.LogError("Missing objext"); } 
    if(objB == null) { Debug.LogError("Missing objext"); } 
    if(objC == null) { Debug.LogError("Missing objext"); } 
} 
void OnTrackingFound() 
{ 
    this.isTracking = true; 
    OnTrackingLost(); 
    if(currentObj != null) { currentObj.SetActive(true); } 
} 
void OnTrackingLost() 
{ 
    this.isTracking = false; 
    objA.SetActive(false); objB.SetActive(false); objC.SetActive(false); 
} 
public void SetObjectWithUI(GameObject obj) 
{ 
    this.current = obj; 
    if (this.isTracking == true){ OnTrackingFound(); } 
} 

Вы добавляете три кнопки на интерфейсе и использовать SetObjectWithUI как событие. Затем в слот GameObject вы перетаскиваете три разных игровых объекта, которые хотите показать. Когда вы нажмете кнопку, основанная на текущем отслеживании, она либо сбросит, либо ничего не сделает.

+0

Спасибо за ваш код. Я создал кнопку и добавил вышеприведенный скрипт и добавил onlcick() с помощью SetObjectWithUI, и выбранный объект должен быть показан. Но ничего не происходит. Не могли бы вы заглянуть? – user6160538

+0

Помните, что класс, в который вы размещаете этот код, должен иметь весь ITrackableEventHandler с общедоступным void OnTrackableStateChanged (TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus). – Everts

+0

Не могли бы вы рассказать об этом? Должен ли я добавить 'code' public void OnTrackableStateChanged (TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) в верхней части кода, который вы указали? Он снова дает ошибку. – user6160538

0

почему вы не используете "User Defined Targets" с обнаружением объекта


User-Defined Цели позволяют конечному пользователю выбрать изображение во время выполнения. Таким образом, пользователь испытывает AR «в любое время и в любом месте», выбирая изображение - например, фотографию, обложку книги или плакат - из его или ее ближайшей окружения без необходимости носить с собой заранее определенные цели.

просто загрузить образцы

  1. Объект Recog

  2. пользователя определить цель на

от: https://developer.vuforia.com/downloads/samples

и объединить оба