複数の JSON ファイルをロードして、それらのメッシュの可視性を制御したいと考えています。これを実現するために、それらを JSON ファイル名に関連付けました。私はそれを機能させましたが、解決策は私を喜ばせません。
THREE.JSONLoader を変更し、新しいパラメーターをコールバック関数に渡しました。そのため、three.js が新しくリリースされるたびに、three.js ファイルに再度パッチを適用する必要がありました。
これが私の実用的なソリューションです(クライアント側)。loader.load(filename, callback, meshname) の新しい 3 番目のパラメーターを参照してください。
パッチを適用した three.js ライブラリを必要としない、より良い解決策はありますか?
ありがとう
// Load the JSON files
var meshes = new Object();
var jsonFileNames = ['assembly/part1.json', 'assembly/part2.json', 'assembly/part3.json'];
for(var i = 0; i < jsonFileNames.length; i++){
var loader = new THREE.JSONLoader();
var meshName = jsonFileNames[i].split("/")[1].split(".")[0];
loader.load(jsonFileNames[i], function(geometry, meshName){
mesh = new THREE.Mesh(geometry, new THREE.MeshPhongMaterial({vertexColors: THREE.FaceColors}));
mesh.scale.set(0.2, 0.2, 0.2);
mesh.doubleSided = true;
scene.add(mesh);
meshes[meshName] = mesh;
}, meshName);
}
// ....
// Access their meshes
meshes[meshName].visible = true;