我需要旋转一个精灵对象,但似乎这是不可行的,如果没有,有没有办法实现旋转效果,可能是通过spriteMaterial的UV坐标,还是自定义着色器?什么是最好的方式?
答案 0 :(得分:18)
Sprite
的轮播由其素材的 rotation
参数设定。例如,像这样:
var material = new THREE.SpriteMaterial( {
color: 0xffffff,
map: texture,
rotation: Math.PI / 4
} );
var sprite = new THREE.Sprite( material );
three.js r.67
答案 1 :(得分:1)
我花了很长时间,但事实证明,您需要旋转精灵材质,而不是精灵本身。像这样:
var scale = 1;
function animate() {
requestAnimationFrame(animate);
// Rotate the sprite:
sprite.material.rotation += 0.01;
// Resize the sprite:
scale += 0.01
sprite.scale.set(scale, scale, 0);
// Move the sprite:
sprite.position.x += 0.01;
renderer.render(scene, camera);
}