@740170551 写道:
请问各位技术大佬,单场景,预制与预制之间有资源共用,如何有效快捷的释放动态加载的预制资源,
var name = 'resources/p' + delList[i]
var deps = cc.loader.getDependsRecursively(name);
cc.loader.release(deps);// 释放太慢,容易造成内存泄露如果我单纯的这样释放,内存释放缓慢,而且容易造成内存泄露,加载其他预制,那么之前释放的预制里面共用的资源又会被多次加载在内存。如果我快速加载其他预制,内存会一直增高然后就造成ios崩溃,
// 如果在这个 prefab 中有一些和场景其他部分共享的资源,你不希望它们被释放,可以将这个资源从依赖列表中删除var deps = cc.loader.getDependsRecursively('prefabs/sample');
var index = deps.indexOf(texture2d.uuid); // texture2d.uuid是哪一块的?如何获取
if (index !== -1)
deps.splice(index, 1);
cc.loader.release(deps);如果用上诉官方释放,texture2d._uuid是哪一块资源,从哪儿去记录这一块儿?
之前和一位大佬交流过,他的建议是从底层那块加载资源那块儿着手,当加载一个预制的时候,去从底层加载资源那里增加一个资源uuid的记录,然后释放预制的时候,就释放记录的uuid,现在的情况,从底层记录这个uuid实在是有点儿困难。跪问各位前辈有没有更有效、快捷、优雅的释放方式。
帖子: 1
参与者: 1