Javascript Three.js在10个随机对象上生成颜色
我正在尝试创建一个函数,该函数将为随机选择的10个对象更改Javascript Three.js在10个随机对象上生成颜色,javascript,three.js,Javascript,Three.js,我正在尝试创建一个函数,该函数将为随机选择的10个对象更改材质颜色,但我不知道如何将其“连接”到数组或向量中。我试着将一些数组放入color(selector)中,比如meshArrayX,但是,对象的位置没有定义,根本不会给任何对象着色 var网格,场景, MeshBasicMaterial=新的三个。MeshBasicMaterial({ 颜色:0x000000, 不透明度:0.3, 透明:正确 }); var-BoxGeometry=新的三个.BoxGeometry(16,16,16);
材质
颜色,但我不知道如何将其“连接”到数组或向量中。我试着将一些数组放入color(selector)
中,比如meshArrayX
,但是,对象的位置没有定义,根本不会给任何对象着色
var网格,场景,
MeshBasicMaterial=新的三个。MeshBasicMaterial({
颜色:0x000000,
不透明度:0.3,
透明:正确
});
var-BoxGeometry=新的三个.BoxGeometry(16,16,16);
函数随机(){
var random=[0,16,32];
var randomValue=random[Math.floor(random.length*Math.random())];
console.log(随机值);
}
功能颜色(选择器){
对于(var v=0;v我不确定我是否理解你的要求,但我尽力帮助你
我想你想创建一个27盒(3x3x3)的数组,但我不理解你的代码…,你使用一个全局变量网格,但只在z循环中添加到场景中
此操作的代码为:
var BoxGeometry = new THREE.BoxGeometry(5, 5, 5);
var meshArray = [];
for (var x=0; x<3; x++) {
for(var y=0; y<3; y++){
for(var z=0; z<3; z++){
var mesh = new THREE.Mesh(BoxGeometry, material.clone());
meshArray.push(mesh);
mesh.position.x = 16*x;
mesh.position.y = 16*y;
mesh.position.z = 16*z;
scene.add(mesh);
console.log(meshArray.length, mesh.position);
}
}
}
现在,当调用颜色函数时,从数组中选择10个随机框并应用颜色
我希望它能有用我不确定我是否理解你的要求,但我尽力帮助你
我想你想创建一个27盒(3x3x3)的数组,但我不理解你的代码…,你使用一个全局变量网格,但只在z循环中添加到场景中
此操作的代码为:
var BoxGeometry = new THREE.BoxGeometry(5, 5, 5);
var meshArray = [];
for (var x=0; x<3; x++) {
for(var y=0; y<3; y++){
for(var z=0; z<3; z++){
var mesh = new THREE.Mesh(BoxGeometry, material.clone());
meshArray.push(mesh);
mesh.position.x = 16*x;
mesh.position.y = 16*y;
mesh.position.z = 16*z;
scene.add(mesh);
console.log(meshArray.length, mesh.position);
}
}
}
现在,当调用颜色函数时,从数组中选择10个随机框并应用颜色
我希望它能有用事实上,这正是我想要的!我刚刚开始学习Three.js,很难找到最新的东西。material.clone()
是我用来分离此材料的东西。非常感谢!事实上,这就是我要寻找的!我刚开始学习Three.js,很难找到最新的东西。material.clone()
是我用来分离此材料的东西。非常感谢!你的随机()函数未返回任何值,因此您将在位置处获得“未定义”。x/y/z您的random()函数未返回任何值,因此您将在位置处获得“未定义”。x/y/z
color(meshArray);