收藏
回答

小程序xr-frame开发时,如何解决摄像头画面内人手和ar物体交互后物体自动返回画面中心的问题?

物体生成,移动均正常,但是代码中没有定义关于摄像头画面内人手交互的逻辑,手却可以在画面内带着ar物体移动或者缩放(并非触碰屏幕,是在画面中),ar模式为plane,这是ar功能默认自带的吗?但在移动结束后有概率物体会返回画面中心,如果想阻止物体自动回中心该怎么解决?

回答关注问题邀请回答
收藏

2 个回答

  • 社区运营专员-wwen
    社区运营专员-wwen
    2025-09-18

    该功能暂不维护,如有 AR 需求,可使用 VisionKit 视觉能力

    2025-09-18
    有用
    回复
  • 旋风棒棒糖
    旋风棒棒糖
    2025-09-09

    代码段如下,大部分取自github上的官方样例:

    xr-tap-tracking.wxml:

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

      <xr-assets bind:loaded="handleAssetsLoaded">

        <xr-asset-load type="gltf" asset-id="anchor" src="忽略" />

        <xr-asset-load type="gltf" asset-id="cat" src="忽略" />

      </xr-assets>

      <xr-env env-data="xr-frame-team-workspace-day" />

      <xr-light type="ambient" color="1 1 1" intensity="1" />

      <xr-light type="directional" rotation="40 70 0" color="1 1 1" intensity="3" cast-shadow />

      <xr-ar-tracker mode="Plane">

        <xr-gltf model="anchor"></xr-gltf>

      </xr-ar-tracker>

      <xr-node node-id="setitem" visible="false">

        <xr-gltf model="cat" anim-autoplay scale="4 4 4" rotation="0 0 0"/>

      </xr-node>

      <xr-camera clear-color="0.4 0.8 0.6 1" background="ar" is-ar-camera />

    </xr-scene>

    监听事件:

    handleAssetsLoaded: function({detail}: {detail: any}) {

        // 添加点击事件监听

        const scene = (this as any).scene;

        if (scene && scene.event) {

          scene.event.add('touchstart', () => {

            if (scene.ar) {

              scene.ar.placeHere('setitem', true);

            }

          });

        }

      }


    2025-09-09
    有用
    回复
登录 后发表内容