错误设置颜色
Error setting Color
我是 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
for ... in
循环迭代对象的 keys 所以 tile
实际上是 index 而不是对象在数组中,使用正常的 for
循环或 forEach
.
for (var i = 0; i < tiles.length; i++)
tiles[i].material.color.setHex(i % 2 ? 0xffffff : 0);
我是 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
for ... in
循环迭代对象的 keys 所以 tile
实际上是 index 而不是对象在数组中,使用正常的 for
循环或 forEach
.
for (var i = 0; i < tiles.length; i++)
tiles[i].material.color.setHex(i % 2 ? 0xffffff : 0);