首页 > 解决方案 > 如何选择抽头模型three.js webxr

问题描述

我正在为 ar (webxr) 中添加到场景中的模型实现旋转功能,目前我只在最近添加的模型上实现它,但我想让用户使用存在的任何模型来执行它,所以我需要选择轻敲模型(我使用touchstart 事件),我使用 raycaster 并检查是否与对象相交但它不起作用,我需要更新相机吗?或者什么,这里是代码:

// loc is vec2d , I add rotation to model in rotatemodel
renderer.domElement.addEventListener('touchstart',function(e){
                    e.preventDefault();
                    touchDown=true;
                    touchX = e.touches[0].pageX;
                    touchY = e.touches[0].pageY;

                loc.x = touchX ;
                loc.y = -  touchY;

                raycaster.setFromCamera( loc , camera );

                const intersects = raycaster.intersectObjects( scene.children );

                if ( intersects.length > 0 ) {

                    if ( rotatemodel != intersects[ 0 ].object ) {

                        rotatemodel = intersects[ 0 ].object;

                    }

                } 
                },false)

标签: javascripthtmlthree.jsaugmented-reality

解决方案


touchstart通过 WebXR 进入沉浸式模式时,浏览器会禁用触摸事件。因此,您不能使用它们在您的应用程序中实现交互性。

更多信息在:Android 上的 Chrome:touchevent 不适用于实体点击


推荐阅读