对象拾取
对象拾取也就是要获得鼠标事件发生位置的图形对象。在threejs中,是通过Raycaster 对象来拾取对象的,ray是射线,caster是投射器,从字面上即可理解其工作原理是:从某个方向发射一条射线,穿过鼠标所在的点,则这条射线经过的对象就是鼠标点击的对象。示例如下:
let raycaster = new THREE.Raycaster();
let mouse = new THREE.Vector2();
function pickupObjects(e){
//将鼠标点击位置的屏幕坐标转成threejs中的标准坐标
mouse.x = (e.clientX/window.innerWidth)*2 -1;
mouse.y = -(e.clientY/window.innerHeight)*2 + 1;