Мягкое тело с загруженной моделью Obj - PullRequest
1 голос
/ 26 апреля 2020

Я использую три. 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 () в неправильное положение. Если это так, куда я должен поместить это .. или, если что-то еще, что должно быть сделано ..

...