threejs使用Sprite精灵图结合射线实现点击Sprite

编程入门 行业动态 更新时间:2024-10-14 22:22:21

threejs使用Sprite精灵图结合<a href=https://www.elefans.com/category/jswz/34/1749452.html style=射线实现点击Sprite"/>

threejs使用Sprite精灵图结合射线实现点击Sprite

页面元素

<div ref="container" style="width: 100%;height: 100%;overflow: hidden;"></div>

添加精灵图

// 创建纹理加载器
let sprite = new THREE.Sprite(new THREE.SpriteMaterial({map: new THREE.TextureLoader().load("图片路径"),sizeAttenuation:false // false的话 不随着相机拉远而变小
}))
sprite.position.set(1,1,1)//精灵图添加的位置
sprite.scale.set(0.12, 0.12, 1)//精灵图大小
sprite.name = ”jinglingtu“//精灵图名称
// 将精灵添加到场景中
scene.add(sprite)

实现点击事件

// 点击事件处理函数
const onClick = (event) => {console.log(event)// 获取点击位置的屏幕坐标const mouse = new THREE.Vector2();mouse.x = (event.clientX / window.innerWidth) * 2 - 1;mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;// 通过射线检测点击位置是否与精灵图相交const raycaster = new THREE.Raycaster();raycaster.setFromCamera(mouse, camera);let intersects = raycaster.intersectObject(sprite);if (intersects.length > 0) {console.log("点击精灵")}
};// 监听点击事件
this.$refs.container.addEventListener('click', onClick, false);

更多推荐

threejs使用Sprite精灵图结合射线实现点击Sprite

本文发布于:2024-03-04 03:04:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1708099.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:射线   精灵   threejs   Sprite

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!