Table of Contents

微信小程序 Mega 插件已知問題與限制

這篇文章介紹了 Mega 小程序插件在使用過程中的已知問題和限制。

微信已知問題

當前微信 xr-frame 或 VisionKit 已確認的缺陷。發生時將導致 AR 功能失效,請在開發時留意相關觸發場景。

微信平面檢測異常

在特定情況下(如畫面中出現大片白牆、相機長時間被遮擋等),微信提供的平面檢測可能出現狀態異常。在這種狀態下,MegaTracker 無法正常工作。

處理方法參考 平面 AR 追蹤器異常處理

Session 初始化時間較長

AR Session 需要等待微信平面檢測初始化完成後才能完成初始化。在某些情況下,微信平面檢測初始化時間較長。

AR Session 需要等待 xr-frame ARTracker 初始化完成的原因 請見 MegaTracker 是如何在 xr-frame 上工作的

<xr-ar-tracker id="xrARTracker" mode="Plane" bind:ar-tracker-state="handleARTrackerState"></xr-ar-tracker>
handleARTrackerState({detail}) {
    if (detail.value.state == xrFrameSystem.EARTrackerState.Detected) {
        console.log('Plane is now detected by XR-Frame ARTracker.');
    }
}

節點的 worldPosition 在當前幀不會被立刻更新

這個例子中 trs.worldPosition 未被及時更新:

public onTick(delta, data) {
    const trs = this.el.getComponent(xrFrameSystem.Transform);
    // 更新前該節點的 WorldPosition
    console.log(`World Position before update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
    // 更新前該節點的 LocalPosition
    console.log(`Local Position before update: ${trs.Position.x}, ${trs.Position.y}, ${trs.Position.z}`);
    trs.position.x += 0.1;
    trs.position.y += 0.1;
    trs.position.z += 0.1;
    // 該節點的 WorldPosition 未被更新
    console.log(`World Position after update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
    // 該節點的 LocalPosition 被更新
    console.log(`Local Position after update: ${trs.Position.x}, ${trs.Position.y}, ${trs.Position.z}`);
}

在開發中建議一直使用 LocalTransform , 即 el.getComponent(xrFrameSystem.Transform).positionel.getComponent(xrFrameSystem.Transform).rotation

屏幕方向切換異常

在微信小程序全局配置 app.json 中的 window 若填入 "auto"。

設備以橫屏模式離開小程序後,若以豎屏模式重新進入,會出現 AR 畫面異常的情況。

因此任何時候不要在 AR 小程序應用中使用 "auto"。

使用限制

功能運行的硬性要求。未滿足時功能不可用,但可通過調整配置或環境予以避免。

機型限制

運行 Mega 小程序插件的設備需要至少支援 微信 VisionKit V1 平面接口。為獲得理想效果,建議使用支援 微信 VisionKit V2 平面接口 的設備。

  • 支援機型列表:參考 V2 平面 AR 接口支援列表

  • 快速判斷方法

    1. 掃描微信小程序官方 Sample 二維碼。 微信小程序官方 Sample 二維碼
    2. 進入小程序後,導航至 接口 > VisionKit 視覺能力 > 水平面 AR-v2,即可快速判斷當前設備是否支援。

如果需要在不相容 VisionKit 的設備上使用 Mega 服務,請參考導航場景最佳實踐 使用支援幾乎所有設備的視+ AR 導航產品

PlaneMode 強制配置

受部分微信接口支援限制,planeMode 必須設置為 1

<xr-scene ar-system="modes:Plane; planeMode: 1" bind:ready="handleReady">

GPS 功能限制

暫不支援通過 GPS 對齊 Block。

暫不支援通過 GPS 擺放標註數據。

相關主題