想要实现双击3D场景中的某个位置,就在该位置上新增一个正方体,我这边一直定位不到改位置,能帮忙解答下不?谢谢!

来源:14-3 点击选取对象

qq_林水霞_0

2023-04-19

想要实现双击3D场景中的某个位置,就在该位置上新增一个正方体,我这边一直定位不到改位置,能帮忙解答下不?谢谢!

  //添加监听
  window.addEventListener('dblclick',event=>{
    let x=((event.clientX)/window.innerWidth)*2-1;
    let y=-((event.clientY)/window.innerHeight)*2+1;
    const stdVector = new THREE.Vector3( x,  y, 0.5); 
    const worldVector = stdVector.unproject(camera);
    const geometry = new THREE.BoxGeometry( 50, 50, 50 );
    const material = new THREE.MeshBasicMaterial( { color: 'green' } );
    const cube = new THREE.Mesh( geometry, material );  
    cube.position.set(worldVector.x,worldVector.y,worldVector.z); //worldVector?这个位置转化有问题
    scene.add( cube ); 
  })
写回答

2回答

慕斯1470457

2023-06-09

box要去的位置应该是射线与场景相交的位置吧,不是相机的世界 坐标

0
0

yancy

2023-04-20

可以打印一下坐标信息。这里的坐标信息应该是有问题的

0
0

WebGL+Three.js 入门与实战,系统学习 Web3D 技术

前端的技术蓝海,涨薪好选择

1081 学习 · 294 问题

查看课程