Table of Contents

평면 AR tracker 예외 처리

이 문서는 callback을 등록하여 WeChat 평면 AR tracker의 예외를 처리하는 방법을 소개합니다.

시작하기 전에

plane detection 예외가 발생하는 이유

화면에 큰 흰 벽이 나타나거나 카메라가 장시간 가려지는 등 특정 상황에서 WeChat 평면 AR tracker에 상태 이상이 발생할 수 있습니다.

이때 평면 AR tracker는 각 frame의 camera pose, 즉 6DoF 데이터를 정상적으로 출력할 수 없으며, 이로 인해 MegaTracker가 작동할 수 없습니다.

화면이 정상(풍부한 texture, 카메라가 가려지지 않음)인 상태로 일정 시간이 지나면 평면 AR tracker가 다시 작동하고 MegaTracker도 다시 작동합니다.

plane detection 이상 시 동작 설정

setPlaneDetectionErrorBehavior(behavior)를 통해 예외 처리 callback을 등록합니다. 예외가 감지되면 이 callback이 트리거되며, 개발자는 그 안에서 사용자 지정 안내, 3D 콘텐츠 숨김 또는 기타 처리 로직을 구현할 수 있습니다.

session.setPlaneDetectionErrorBehavior(() => {
    wx.showToast({
        icon: 'none',
        title: `微信平面检测结果异常,请将相机对着平面来回移动以恢复跟踪`,
        duration: 2000,
    });
});

이 예제에서는 session의 setPlaneDetectionErrorBehavior(behavior) interface를 사용해 Toast 창을 띄우는 callback을 등록했으며, plane detection 이상 시 트리거됩니다.