闪烁的光点:
const geometry = new SphereGeometry( 0.4, 32, 16 );
const red = new MeshBasicMaterial( { color: 0xff0000 } );
const sphere = new Mesh( geometry, red );
sphere.position.set(x,y,z)
this.root.add( sphere )
setInterval(()=>{
if(sphere.scale.x===1)sphere.scale.set(0.5,0.5,0.5)
else sphere.scale.set(1,1,1)
},500)
用射线检测实现点击事件
const raycaster = new Raycaster();
const mouse = new Vector2();
window.addEventListener( 'mousemove', (event)=>{
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}, false );//鼠标移动事件
window.addEventListener('click',()=>{
raycaster.setFromCamera( mouse, window.c )
const intersects = raycaster.intersectObjects( scope.spheres )
if(intersects.length!==0){
intersects[0].object.sprite.visible=true
}
},false);
骨骼动画
var mixer = new THREE.AnimationMixer(glb0.scene);
mixer.clipAction(glb0.animations[0]).play();
setInterval(()=> mixer.update(0.01),10)