Three.js 如何更新三个。精灵颜色

Three.js 如何更新三个。精灵颜色,three.js,sprite,Three.js,Sprite,我使用默认颜色创建材质,在本例中为0xffffff 后来,我想换颜色。我不知道在哪里更改它-particle.color=0xffffff*Math.random()不起作用。没有particle.color,但是有一个particle.material.color,如果我更改它,就会产生错误 我需要为每个精灵创建新材质吗?有什么方法可以让我简单地改变三点雪碧的颜色吗 var material = new THREE.SpriteCanvasMaterial({ color: 0

我使用默认颜色创建材质,在本例中为
0xffffff

后来,我想换颜色。我不知道在哪里更改它-
particle.color=0xffffff*Math.random()不起作用。没有
particle.color
,但是有一个
particle.material.color
,如果我更改它,就会产生错误

我需要为每个精灵创建新材质吗?有什么方法可以让我简单地改变三点雪碧的颜色吗

var material = new THREE.SpriteCanvasMaterial({
        color: 0xffffff,
        program: function (context) {
            context.beginPath();
            context.arc(0, 0, 0.5, 0, PI2, true);
            context.fill();
        }
    });

    for (var i = 0; i < 50; i++) {

        particle = new THREE.Sprite(material);
        particle.position.x = Math.random() * 2 - 1;
        particle.position.y = Math.random() * 2 - 1;
        particle.position.z = Math.random() * 2 - 1;
        particle.position.normalize();
        particle.position.multiplyScalar(Math.random() * 10 + 450);
        particle.scale.x = particle.scale.y = 20;
        particle.color = 0xffffff * Math.random();
        scene.add(particle);
    }
var material=new THREE.SpriteCanvasMaterial({
颜色:0xffffff,
程序:函数(上下文){
context.beginPath();
弧(0,0,0.5,0,PI2,true);
context.fill();
}
});
对于(变量i=0;i<50;i++){
粒子=新的三个。精灵(材质);
particle.position.x=Math.random()*2-1;
particle.position.y=Math.random()*2-1;
particle.position.z=Math.random()*2-1;
particle.position.normalize();
particle.position.multiplyScalar(Math.random()*10+450);
particle.scale.x=particle.scale.y=20;
particle.color=0xffffff*Math.random();
场景。添加(粒子);
}

particle.material.color=新的三种颜色(0x0066CC)


particle.material.color.set(0x0066CC)三个JS:R.73

从文档中:
particle.material.color=新的三种颜色(0x0066CC)


particle.material.color.set(0x0066CC)三个JS:R.73

从文档中:

请参考三个.js示例:谢谢,它们会在创建时创建随机颜色。不过,在仔细观察这些物体之后,我发现了这一点。谢谢你的建议!参考三个.js示例:谢谢,它们在创建时创建随机颜色。不过,在仔细观察这些物体之后,我发现了这一点。谢谢你的建议!是否确实要创建新对象?为什么不
material.color.set(0xff0000)
?@WestLangley不是color.setHex(0xff0000)?@WestLangley是的,它有效,我对此感到困惑。很抱歉是否确实要创建新对象?为什么不
material.color.set(0xff0000)
?@WestLangley不是color.setHex(0xff0000)?@WestLangley是的,它有效,我对此感到困惑。很抱歉