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);
文章目录1.本文主要内容2.Sprite介绍3.Threejs中Sprite的相关函数使用4.封装好的Sprite相关内容的使用4.1 管理已创建的sprite对象4.2 切换显示/隐藏sprite4.3 具体使用方法
1.本文主要内容
Three.js有关内容也是属于Web三维可视化监控系统搭建的一部分,但是考虑到这里只是专注于Threejs有关内容的介绍,因此把标题改成了Threejs的补充,将常用的模块进行单独介绍。当然,后面还能补充什么内容,我还没想好。
码云示例仓库地址,考虑到国内访问gayhub
第一种写(我印象中的代码):
sprite:setTouchEnabled(true)
sprite:addTouchEventListener(function(event,x,y)
--精灵点击事件的监听成功添加、
第二种,根据boundingBox来判断
local spriteBox = spri...
Three.js的精灵模型`Sprite`和Threejs的网格模型`Mesh`一样都是模型对象,父类都是`Object3D`,关于精灵模型对象`Sprite`的方法和属性除了可以查看文档Sprite,也可以查看父类`Object3D`。
`Sprite`与矩形平面`Mesh`的区别在于,当你旋转三维场景的时候,如果通过相机控件OrbitControls旋转测试,你可以发现`Sprite`矩形平面会始终平行于Canvas画布或者说屏幕,而矩形平面`Mesh`的姿态角度会跟着旋转,不一定平行于canvas画
1使用Sprite创建2D形状
Sprite叫精灵,计算机图形学中,精灵指包含于场景中的二维图像或动画。在threejs中,可以使用Sprite加载图像纹理,当然也包括用canvas创建的纹理,因此,canvas能创建什么图像,Sprite就能创建什么形状。下面的例子使用Sprite创建了一个圆:
function createSpriteShape(){