赞
踩
window.addEventListener("click", this.onClick, false);
const raycaster = new THREE.Raycaster();
const mouse = new THREE.Vector2();
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
raycaster.setFromCamera( mouse, this.camera );
const intersects = raycaster.intersectObjects( this.scene.children, true );
if ( intersects.length > 0 ) {
// intersects[0] 包含了第一个交点 在这里处理事件
const clickedObject = intersects[0].object;
if(clickedObject.name===clickedObject.name){
this.constructor(false)
console.log("获取的当前模型信息:", clickedObject);
alert(clickedObject.name)
}
}
//监听点击事件 window.addEventListener("click", this.onClick, false); //事件函数 methods: { onClick(event) { const raycaster = new THREE.Raycaster(); const mouse = new THREE.Vector2(); // 计算鼠标或触摸点的位置 mouse.x = (event.clientX / window.innerWidth) * 2 - 1; mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; // 更新射线 注意——> this.camera 是相机 定义到data里的 raycaster.setFromCamera(mouse, this.camera); // 计算与所有对象的交点 const intersects = raycaster.intersectObjects(this.scene.children, true); if (intersects.length > 0) { // 处理点击事件 // intersects[0] 包含了第一个交点 const clickedObject = intersects[0].object; //通过点击到该模型用名字匹配 if (clickedObject.name === clickedObject.name) { console.log("获取的当前模型信息:", clickedObject); alert(clickedObject.name); } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。