Как поймать, когда цель найдена с помощью Vuforia для iOS?

Мне нужен простой способ определить, когда цель была найдена или потеряна, чтобы я мог перейти к другому контроллеру.

Этот вопрос задавался на нескольких форумах, но удовлетворительного ответа так и не было. Этот конкретный пост кажется наиболее подробным, но ему более трех лет.

https://developer.vuforia.com/forum/ios/trackableeventhandler-equivalent-ios

Я не могу найти никакой документации, связанной с этим на сайте Vuforia.

2 ответа

  1. Один из методов, который должен быть реализован VuforiaManagerDelegate является:

    func vuforiaManager(_ manager: VuforiaManager!, didUpdateWith state: VuforiaState!)
    

    При обнаружении цели (изображение распознается Vuforia) это свойство будет изменяться от 0 до 1 (или более, если несколько целей идентифицированы):

    numberOfTrackableResults
    

    Так что это просто вопрос проверки состояния.numberOfTrackableResults > 0 { ваш код здесь }

  2. в скрипте TrackableEventHandler есть функция OnTrackableStateChanged

    вы можете зарегистрироваться и сделать все, что вы хотите сделать прямо здесь или в OnTrackingFound();

    public void OnTrackableStateChanged(
    TrackableBehaviour.Status previousStatus,
    TrackableBehaviour.Status newStatus)
    {
    if (newStatus == TrackableBehaviour.Status.DETECTED ||
    newStatus == TrackableBehaviour.Status.TRACKED ||
    newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
    {
    OnTrackingFound();
    }
    else
    {
    OnTrackingLost();
    }
    }