我是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
答案 0 :(得分:0)
for ... in
循环迭代对象的键,因此tile
实际上是索引而不是数组中的对象,使用普通{ {1}}循环或for
。
forEach