改变立方体每个面的颜色

时间:2014-09-05 10:32:37

标签: javascript three.js texturing onmouseclick

我一直试图在点击时更改立方体的颜色。我遇到的问题是,当我使用MeshFaceMaterial时,它似乎无法工作。到目前为止,我已经设法改变了立方体单面的颜色,如下所示:

if ( intersects.length > 0 )
{
    console.log("Hit @ " + toString( intersects[0].point ) );
    // change the color of the closest face.
    intersects[ 0 ].face.color.setRGB( 0.8 * Math.random() + 0.2, 0, 0 ); 
    intersects[ 0 ].object.geometry.colorsNeedUpdate = true;
}

如何更改我的代码,以便在单击一个面时所有面都会改变颜色? 谢谢!

1 个答案:

答案 0 :(得分:0)

geometry属性中获取所有面孔的列表:

if ( intersects.length > 0 )
{
    console.log("Hit @ " + toString( intersects[0].point ) );
    // change the color of the closest face.
    var faces = intersects[0].object.geometry.faces;
    for (var i = 0; i < faces.length; i++) {
       faces[i].color.setRGB( 0.8 * Math.random() + 0.2, 0, 0 ); 
    }

    intersects[ 0 ].object.geometry.colorsNeedUpdate = true;
}