В настоящее время я загружаю кучу элементов модели и добавляю их в группу. Затем я хочу, чтобы вы могли перемещать группу как единое целое после загрузки.сгруппированные модели collada onload three.js
Моя проблема в том, как я могу запустить код, как только я убедился, что все мои модели загружены? Я не понимаю, как использовать функцию .onload с colladaLoader & его функции обратного вызова. Кроме того, это плохая идея использовать функцию самоисполнения, как у меня здесь? Я не уверен, как еще пройти список и загрузить все модели.
Мой код ниже. Я попытался использовать хак, используя счетчик «полный», но он не работает все время. Благодаря!
for (var i=0; i<object.asset.length; i++) {
loader = new THREE.ColladaLoader();
asset = furniture.asset[i];
(function(asset) {
loader.load(asset["path"], function(collada, materials) {
//this function scales & positions model
var mesh = daeAttributes(collada, object, asset, newMaterial);
var scene = get_scene();
group.add(mesh);
complete++;
//when all assets have been loaded, add the group to the scene
if (complete===object.asset.length-1) {
//want to move the group once all the models are loaded
group = moveModel(group, object);
scene.add(group);
render();
};
});
})(asset);
Update
Так что, если у меня есть список> 1, уникальных объектов для загрузки в, это работает. Если есть только один объект, он не загружает этот один объект.