我正在尝试同时加载多个部分。要么只显示一件,正确显示,要么两件都出现,一件正确且一件不正确。这是我的代码:
var loader = THREE.ColladaLoader();
loader.load('model.dae', function colladaReady(result) {
var piece = result.scene.children[0];
piece.position.set(-100, 0, 0);
scene.add(piece);
renderer.render(scene, camera);
});
loader.load('model2.dae', function colladaReady2(result2) {
var piece2 = result2.scene.children[0];
piece2.position.set(100, 0, 0);
scene.add(piece2);
renderer.render(scene, camera);
});
答案 0 :(得分:0)
原因是因为ColladaLoader不是线程安全的,所以不能对同一个对象进行多次load()调用。只需像这样创建一个新的ColladaLoader实例,所有实例都可以正常工作
var loader = THREE.ColladaLoader();
loader.load('model.dae', function colladaReady(result) {
var piece = result.scene.children[0];
piece.position.set(-100, 0, 0);
scene.add(piece);
renderer.render(scene, camera);
});
/*** Line added here! ***/
var loader2 = THREE.ColladaLoader();
loader.load('model2.dae', function colladaReady2(result2) {
var piece2 = result2.scene.children[0];
piece2.position.set(100, 0, 0);
scene.add(piece2);
renderer.render(scene, camera);
});