javascript - Three.js 创建多个对象

标签 javascript for-loop three.js

我想创建多个对象。

    var distance = 10;
    var geometry = new THREE.BoxGeometry(10,10,10);
    var material = new THREE.MeshBasicMaterial({color:0x00ff44});

    for(var i = 0; i < 4;i++){
        var mesh  = new THREE.Mesh(geometry, material);
        mesh.position.z = distance;
        scene.add(mesh);
        distance += 5;
    };`

使用这段代码我创建了它,但只在一行中。我想在第一行的背面创建更多行。就像这张图片:

What i want to create - Image

我想要在Red X位置上放置更多立方体。

最佳答案

var xDistance = 50;
var zDistance = 30;
var geometry = new THREE.BoxGeometry(10,10,10);
var material = new THREE.MeshBasicMaterial({color:0x00ff44});

//initial offset so does not start in middle.
var xOffset = -80;

for(var i = 0; i < 4; i++){
    for(var j = 0; j < 3; j++){
            var mesh  = new THREE.Mesh(geometry, material);
            mesh.position.x = (xDistance * i) + xOffset;
            mesh.position.z = (zDistance * j);
            scene.add(mesh);
    }
};

See this fiddle

关于javascript - Three.js 创建多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338474/

相关文章:

javascript - 从 html 页面隐藏 javascript/jquery 脚本?

javascript - React Native - 获取选择了哪个可触摸突出显示

javascript - 最后一次迭代返回 undefined

reactjs - 使用 ThreeJS 和 Dat.Gui 更新网格纹理

javascript - 添加链接点击时弹出的文本

Javascript:如何使用循环函数在一个警告框中显示所有用户输入?

scala - 用for和yieldscala交换数组值

python - 查找 3 维 numpy 数组的唯一值的索引

javascript - Three.js 中的基本 Collada 加载

javascript - 将 2D uv 点平滑地映射到 3D xyz 球体上