如何从 A-Frame 中的内存中释放纹理?

How to deallocate texture from memory in A-Frame?

我想知道如何从特定场景中不再需要的资产中释放内存。目前,我们在场景中卸载资产后,我们的资产纹理会保留在内存中。

<a-scene>
  <a-box src="texture.jpg"></a-box>
</a-scene>

编辑:处理纹理的最简单方法是获取实体的 material 并调用 material.map.dispose()。例如this.el.getObject3D('mesh').material.map.dispose(),直到A-Frame能够自动处理。

您可以从 document.querySelector('a-scene').systems.material.textureCache 和 运行 .dispose() 获取纹理对象。

或者,我相信你可以通过 document.querySelector('a-entity').components.material.material.map.dispose() 从实体中获取纹理。

自动执行此操作已提交问题:https://github.com/aframevr/aframe/issues/2166