Обработка исключений plane AR tracker
В этой статье описывается, как обрабатывать исключения WeChat plane AR tracker путем регистрации callback.
Перед началом
Узнайте через workflow MegaTracker:
- xr-frame plane AR tracker по сути является оболочкой возможности VisionKit 6DoF plane.
- Как MegaTracker работает на xr-frame.
Ознакомьтесь с понятием и процессом AR Session
Почему возникают исключения plane detection
В определенных случаях, например когда в кадре появляется большая белая стена или камера долго закрыта, WeChat plane AR tracker может перейти в abnormal state.
В этот момент plane AR tracker не может нормально выводить pose камеры для каждого кадра, то есть данные 6DoF, что приводит к невозможности работы MegaTracker.
После того как изображение некоторое время остается нормальным, с богатой texture и без закрытия камеры, plane AR tracker восстановит работу, и MegaTracker также восстановит работу.
Настройка поведения при abnormal plane detection
Зарегистрируйте callback обработки исключений через setPlaneDetectionErrorBehavior(behavior). При обнаружении исключения этот callback будет вызван, и разработчик может реализовать в нем пользовательские подсказки, скрытие 3D-контента или другую логику обработки.
session.setPlaneDetectionErrorBehavior(() => {
wx.showToast({
icon: 'none',
title: `微信平面检测结果异常,请将相机对着平面来回移动以恢复跟踪`,
duration: 2000,
});
});
В этом примере interface setPlaneDetectionErrorBehavior(behavior) у session используется для регистрации callback, открывающего окно Toast; он вызывается при abnormal plane detection.