资产工作流

资产的释放

为了避免重复加载资源,当资源被加载完成之后,会被缓存在 ResourceManager 内。缓存本身会占用内存和显存,当开发者不再需要缓存的内容时,需要手动去释放缓存的内容。

注意:资源之间是相互依赖的。

例如下图展示的实体包含 MeshRenderer 组件,依赖于 MaterialMaterial 可能被多个 MeshRenderer 引用,如果释放 Material ,那么引用此的其他 MeshRenderer 则会找不到该 Material 而报错。

注意:JavaScript 无法追踪对象的引用。 一般在 JavaScript 等弱类型语言中,是没有提供给开发者内存管理的功能的,所有对象的内存都是通过垃圾回收机制来管理,你没有办法去判断对象什么时候会被释放,所以没有析构函数(destructor)去调用引用资源的释放。

ResourceManager 提供了一套基于引用计数的资源释放,需要开发者手动调用 gc

engine.resourceManager.gc();

这篇文档对您有帮助吗?