如何从Object3D中删除和处理所有子几何和网格?

fvl*_*tmn 6 javascript memory-leaks three.js

在我正在研究的这个项目中,我展示了几个Collada模型,然后在不再需要时将其移除.在项目的某个地方似乎存在内存泄漏,我正在寻找方法让它尽可能顺畅地运行,因为时间不在我身边...我觉得我没有以正确的方式删除网格而且这个可能会导致我的一些内存泄漏.

我加载对象,LoadObject(level_1_character, "Assets/Level_1_Character.dae");例如,在哪里level_1_character是Object3D.这会调用以下函数:

function LoadObject(name, url) {
            var mesh, geometry, material, animation;
            var loader = new THREE.ColladaLoader();
            loader.options.convertUpAxis = true;
            loader.load(url, function(col) {
                mesh = col;
                geometry = col.scene;
                name.name = url.toString();
                name.add(geometry);
            });
        }
Run Code Online (Sandbox Code Playgroud)

我根据级别将对象添加到场景中scene.add(level_1_character);,然后通过执行以下操作将其删除:

level_1_character.traverse(function(child){
            if (child instanceof THREE.Mesh) {
                child.material.dispose();
                child.geometry.dispose();
            }
        });
Run Code Online (Sandbox Code Playgroud)

我不确定这是否真的完全删除了对象.似乎对象仍然存在于内存中.知道我在这里做错了吗?