遍历数组并为每个条目将对象添加到场景将对象添加到相同位置

Looping through array and adding object to scene for each entry adds objects to the same position

我正在尝试为数组中的每个项目向我的 three.js 场景添加一个对象。我无法判断是否所有对象都添加到场景中,因为它们都添加到同一位置,而且我无法弄清楚如何更改每个对象的位置。

下面是循环代码并为数组中的每个项目添加一个立方体:

var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
var cube = new THREE.Mesh( geometry, material );

getData()
async function getData() {
    const response = await fetch('/api/indexvr');
    const data = await response.json();
    console.log(data)

    for (var i=0; i<data.length; i++) {
        try {
        scene.add( cube );
        // cube.position.y = i //1++
        } catch (e) {
            console.error(e)
        }
    }
}   

camera.position.z = 5;

我也试过在 for 循环中声明立方体及其位置,但这也没有用。我需要所有对象都是可见的,并且它们的位置是动态的,具体取决于数组中的数量,例如像相机周围的圆圈,如果超过 10/15,将 y 轴增加 4,然后再次继续圆圈。我不知道如何或找不到文档来帮助。有什么想法或链接可以帮助吗?提前致谢。

编辑: 使用从 Mugen87 收到的代码,立方体现在看起来像这样。

像这样尝试(如果@gman 执行反馈):

var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );

getData()
async function getData() {
    const response = await fetch('/api/indexvr');
    const data = await response.json();
    console.log(data)

    for (var i=0; i<data.length; i++) {

        var cube = new THREE.Mesh( geometry, material );
        cube.position.y = i;
        scene.add( cube );

    }
}   

camera.position.z = 5;