小程序
小游戏
企业微信
微信支付
扫描小程序码分享
物体生成,移动均正常,但是代码中没有定义关于摄像头画面内人手交互的逻辑,手却可以在画面内带着ar物体移动或者缩放(并非触碰屏幕,是在画面中),ar模式为plane,这是ar功能默认自带的吗?但在移动结束后有概率物体会返回画面中心,如果想阻止物体自动回中心该怎么解决?
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
该功能暂不维护,如有 AR 需求,可使用 VisionKit 视觉能力
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
代码段如下,大部分取自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);
}
});
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
该功能暂不维护,如有 AR 需求,可使用 VisionKit 视觉能力
代码段如下,大部分取自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);
}
});
}
}