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 異常時にトリガーされます。