如何在Aframe中正确卸载(解除分配/处置)glTF或OBJ模型?

时间:2017-10-03 19:30:40

标签: javascript virtual-reality aframe webvr gltf

我正在尝试使用aframe创建一个多房间环境。在每个房间中,都会有一些与之交互的对象,这些模型是从glTF或OBJ文件加载的。

在手机上,我们的内存数量非常有限,所以我想在用户传送/移动到另一个房间时清除未使用的模型。但我不知道如何实现这一目标。 我发现了一些建议使用document.querySelector('a-scene').systems.material.textureCache的相关问题,但我没有在那里找到我的模型(因为它是模型,而不是纹理)。我曾尝试使用THREE.Cache方法,但有了它,我只能使用一些缓存数据,而不是。

我正在使用这样的模型(创建实体):

<a-gltf-model id="m4_obj" src="/models/m4a1/scene.gltf" position="0.713 1 -5.156" scale="0.1 0.1 0.1" ></a-gltf-model>

所以,我尝试清除缓存: https://i.imgur.com/cYJeegP.png

在加载后拍摄了快照22。

执行document.getElementById("m4_obj").parentNode.removeChild(document.getElementById("m4_obj"));

后拍摄了快照23

执行此操作后拍摄了快照24:

for (let elem in THREE.Cache.files){
    if (elem.startsWith('/models/m4a1/')){
        THREE.Cache.remove(elem)
    }
}

/models/m4a1/ - 是一个包含我要删除的模型的文件夹。 但如果我评论这个对象,我的快照就会变成56mb! https://i.imgur.com/lznA3q5.png

那么,我应该如何从场景中正确移除模型,将其完全丢弃?谢谢!

0 个答案:

没有答案