Итак, меня смущает асинхронное поведение загрузчика. Вот что у меня есть:
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 загружает массив STL Сетки