设置颜色时出错

时间:2015-06-20 00:29:01

标签: javascript three.js

我是three.js的新人。基本上我想制作像棋盘一样的东西。我明白了:

for( x=-30; x<=50;x=x+10){
        for( y=-30; y<=20;y=y+10 ){
            var TileGeometry = new THREE.PlaneGeometry(5,5);
            var TileMaterial = new THREE.MeshBasicMaterial();
            var Tile = new THREE.Mesh(TileGeometry,TileMaterial);
            //tile.receiveShadow = true
            Tile.rotation.x=-0.5*Math.PI;
            Tile.position.x = x;
            Tile.position.y = 0;
            Tile.position.z = y;
            Tile.castShadow=true;
            scene.add(Tile);
            //whiteTile.material.color.setHex(0x000000);
            tiles.push(Tile);
        }
    }


    for(var tile in tiles){
        if(count%2==0){
            tile.material.color.setHex(0x000000);
            }
        else{
            tile.material.color.setHex(0xffffff);
            }
        count++;
    }

瓷砖正确定位。问题在于设置颜色。 我得到了:

Uncaught TypeError: Cannot read property 'color' of undefined

1 个答案:

答案 0 :(得分:0)

for ... in循环迭代对象的,因此tile实际上是索引而不是数组中的对象,使用普通{ {1}}循环或for

forEach

Read more about for ... in loops on MDN