组件的property引用的资源不会被释放掉。
预加载的资源需要增加一个白名单机制
Cocos v2.2.2 demo
fix 自动合图未处理的bug
fix 手动创建的spriteFrame未处理的bug
增加白名单机制
ResCleaner-cocos-v222.zip (446.5 KB)
1赞
老哥升到2.4了吗,最近我在升2.4,感觉坑有点多
我准备直接升级到3.0版本了
private _decRef(asset: cc.Asset, delta: number = 1) {
if (this.autoRelease && asset) {
if (asset instanceof cc.MaterialVariant) {
//@ts-expect-error
asset = asset.material
}
let dynamicAsset = asset as DynamicAsset
if (dynamicAsset._dynamic != DynamicState.STATIC && dynamicAsset._dynamic != DynamicState.UNUSE) {
dynamicAsset._dynamic -= delta
dynamicAsset._ref -= delta
//引用计数不为0 可能是循环引用也需要做释放检测
this.tryRelease(dynamicAsset._uuid)
}
}
}
计数只要减了,都try释放吗?
2.3以上本来底层就是引用计数,只需要自己去管理资源的使用就好,楼主的方案也只适合2.3及以下,通过楼主的这个方案和2.4自带的资源管理接口集合,就可以做一个体积小,兼容性强的资源管理器,我目前就是这么做的
1赞
markkkkkkk
动态引用计数减到0才检查啊
这个思路不错呀
从引擎源码里扣出来的
有3.x版本的吗
过两天吧··
嗯,有3.x版本的时候,@我下
马克~~~~
老哥,有了吗
最近项目要发版本