Я использую три. js и патроны. js. Я пытаюсь применить физику мягких тел к моей загруженной модели obj.
Я загрузил свою модель, используя функцию загрузки .. в init ()
var ObjGeometry;
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setBaseUrl('../../objfiles/');
mtlLoader.setPath('../../objfiles/');
mtlLoader.load('../../objfiles/shristidress.mtl', function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.load('../../objfiles/shristidress.obj', function(object) {
object.traverse(function(child) {
if (child.isMesh) {
ObjGeometry = child.geometry;
}
});
scene.add(object);
});
});
Затем следует createoftVolume ()
var volumeMass = 15;
createSoftVolume(ObjGeometry, volumeMass, 0);
Я получаю ошибку как Необработанное отклонение обещания: TypeError: Невозможно прочитать свойство 'index' из undefined
На форуме github я обнаружил ту же проблему здесь проблема в github Я использовал точно такой же код html и js, за исключением того, что я загрузил с помощью objLoader ().
И я мог понять, что это потому, что модель не загружена и createSoftVolume () вызывается немедленно.
Я даже пробовал версию с обратным вызовом, как будто делал ...
init(function(){
createSoftVolume(ObjGeometry,volumeMass,0);
});
Но как я мог решить эту проблему. В вышеупомянутой проблеме он сказал, что поместил createSoftBody () в неправильное положение. Если это так, куда я должен поместить это .. или, если что-то еще, что должно быть сделано ..