Three.js 多个ColladaLoader加载失败。它是线程安全的吗?
我试图同时加载多个工件。要么只有一件正确显示,要么两件都正确显示,一件正确,一件不正确。这是我的密码:Three.js 多个ColladaLoader加载失败。它是线程安全的吗?,three.js,Three.js,我试图同时加载多个工件。要么只有一件正确显示,要么两件都正确显示,一件正确,一件不正确。这是我的密码: 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);
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);
});
原因是ColladLoader不是线程安全的,因此不能对同一对象进行多个load()调用。只需像这样创建一个ColladLoader的新实例,所有这些都应该可以工作
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);
});