javascript – Three.js THREE.Projector已移至

嗨,我明白在THREE 71版本中没有THREE.projector.

但我不会不知道,如何更换THREE.projector功能和什么?

这是我的点击功能

var vector = new THREE.Vector3( ( event.clientX / window.innerWidth ) * 2 - 1,- ( event.clientY / window.innerHeight ) * 2 + 1,0.5 );
            projector.unprojectVector( vector,camera );
            var raycaster = new THREE.Raycaster( camera.position,vector.sub( camera.position ).normalize() );
            var intersects = raycaster.intersectObjects( objects );
          if ( intersects.length > 0 ) {
             clicked =  intersects[0];
             console.log("my clicked object:",clicked);


         }

什么是正确的方法

解决方法

现在有一种比较简单的图案可以用于正视和透视相机类型:
var raycaster = new THREE.Raycaster(); // create once
var mouse = new THREE.Vector2(); // create once

...

mouse.x = ( event.clientX / renderer.domElement.clientWidth ) * 2 - 1;
mouse.y = - ( event.clientY / renderer.domElement.clientHeight ) * 2 + 1;

raycaster.setFromCamera( mouse,camera );

var intersects = raycaster.intersectObjects( objects,recursiveFlag );

three.js r.84

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...