// 创建纹理加载器
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);
				
文章目录1.本文主要内容2.Sprite介绍3.ThreejsSprite的相关函数使用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(){