Tratamento de exceções do plane AR tracker
Este artigo apresenta como tratar exceções do plane AR tracker do WeChat registrando callback.
Antes de começar
Entenda por meio do workflow MegaTracker:
- O plane AR tracker do xr-frame é essencialmente um wrapper da capacidade VisionKit 6DoF plane.
- Como MegaTracker funciona no xr-frame.
Por que ocorrem exceções de plane detection
Em situações específicas, como quando aparece uma grande parede branca na imagem ou a câmera fica bloqueada por muito tempo, o plane AR tracker do WeChat pode entrar em estado anormal.
Nesse momento, o plane AR tracker não consegue emitir normalmente a camera pose de cada frame, ou seja, dados 6DoF, o que faz com que MegaTracker não funcione.
Depois que a imagem volta ao normal por um período, com texture rica e câmera não bloqueada, o plane AR tracker retoma o funcionamento, e MegaTracker também retoma o funcionamento.
Definir o comportamento quando plane detection está anormal
Registre um callback de tratamento de exceções por meio de setPlaneDetectionErrorBehavior(behavior). Quando uma exceção é detectada, esse callback é acionado, e o desenvolvedor pode implementar prompts personalizados, ocultar conteúdo 3D ou outra lógica de tratamento.
session.setPlaneDetectionErrorBehavior(() => {
wx.showToast({
icon: 'none',
title: `微信平面检测结果异常,请将相机对着平面来回移动以恢复跟踪`,
duration: 2000,
});
});
Neste exemplo, a interface setPlaneDetectionErrorBehavior(behavior) de session é usada para registrar um callback que exibe uma janela Toast, acionado quando plane detection está anormal.