好的,所以加载程序的异步行为使我大吃一惊。这是我所拥有的:

for( i = 0; i < 37; i++ ){
    partLoader.load( "parts/" + filename[i], function ( geometry ) {
        var partMesh = new THREE.Mesh( geometry, basicMat );
        partMesh.position.y = yPos;
        partMesh.position.x = xPos;
        bodyPart.push(partMesh);
        rayCastScene.add( partMesh );
    });
}


最初我是在设置bodyPart[i] = partMesh,但是到回调函数运行时,我= 36,所有这些元素在最后一个元素中都相互覆盖。推入它们至少会使它们全部进入数组,但是我不知道哪个索引与哪个元素一起存在。

我将其与光线跟踪一起使用以识别特定对象。if(SELECTED == bodyPart[i]) ...

此处存在类似问题,但没有解决方案:THREE.JS loading an array of STL Meshes

最佳答案

其实这与Three.js无关,逻辑上的问题,简单的例子:

您可以创建简单的计数器来控制此功能运行多少次

10-06 03:11