threejs的3D模型,点击素材,获取点击的素材对象,偏移问题怎么解决。总是不对 window.addEventListener("click", this.initClick, false); .... initClick(event) { const webgl = document.getElementById('webgl'); const webglData = webgl.getBoundingClientRect(); const px = event.offsetX; const py = event.offsetY; //屏幕坐标转标准设备坐标 const mouse = new THREE.Vector2(); const x = ((px - webglData.left) / webgl.offsetWidth) * 2 - 1; const y = -((py - webglData.top) / webgl.offsetHeight) * 2 + 1; const raycaster = new THREE.Raycaster(); //.setFromCamera()在点击位置生成raycaster的射线ray raycaster.setFromCamera(new THREE.Vector2(x, y), this.camera); // 射线交叉计算拾取模型 const intersects = raycaster.intersectObjects(this.material.list); if (intersects.length > 0) { // 处理点击事件 // intersects[0] 包含了第一个交点 const clickedObject = intersects[0].object; //通过点击到该模型用名字匹配 if (clickedObject.name === clickedObject.name) { console.log("点击了:", clickedObject.name); } } }, 百度