objects=[];
raycaster = new THREE.Raycaster();
mouse = new THREE.Vector2();
//監聽全局點擊事件,通過ray檢測選中哪一個object
document.addEventListener("mousedown", (event) => {
event.preventDefault();
this.mouse.x = (event.clientX / this.renderer.domElement.clientWidth) * 2 - 1;
this.mouse.y = - (event.clientY / this.renderer.domElement.clientHeight) * 2 + 1;
this.raycaster.setFromCamera(this.mouse, this.camera);
this.scene.children.forEach(child => {
if (child instanceof THREE.Mesh) {//根據需求判斷哪些加入objects,也可以在生成object的時候push進objects
this.objects.push(child)
}
})
var intersects = this.raycaster.intersectObjects(this.objects);
if (intersects.length > 0) {
console.log(intersects[0].object)
}
}, false)