Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js在10个随机对象上生成颜色_Javascript_Three.js - Fatal编程技术网

Javascript Three.js在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);

我正在尝试创建一个函数,该函数将为随机选择的10个对象更改
材质
颜色,但我不知道如何将其“连接”到数组或向量中。我试着将一些数组放入
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);