let pickPosition={ x:-100000 , y:-100000 }//初始化射线位置
//通过屏幕位置,获取射线位置
getPickPosition(event){
let width =window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
let height =window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
pickPosition.x = (event.offsetX / width ) * 2 - 1;
pickPosition.y = (event.offsetY / height ) * -2 + 1;
}
//拾取对象
pickMesh(){
let intersectedObjects = null
const raycaster = new THREE.Raycaster();
raycaster.setFromCamera(pickPosition, camera);//根据鼠标屏幕上的位置,和场景中的相机去计算射线位置
let allCarsMesh = scene.getObjectByName("allMesh").children//获取要拾取的所有对象
intersectedObjects = raycaster.intersectObjects(allCarsMesh,false);//返回的是个数组,里面包含所有拾取到的对象
}
threejs射线拾取对象THREE.Raycaster()
最新推荐文章于 2024-05-06 10:09:10 发布