问个关于内存泄漏的问题

一个spine包含atlas、json(SkeletonData)、png三个文件
用bundle.load动态加载json文件赋值给spine组件的skeletonData,这时atlas和png会不会自动加载?
然后调用assetManager.releaseAsset(json文件),这时atlas和png会不会自动释放?

Question1: 会自动加载。
加载的代码就是

https://gitee.com/yeshao2069/cocos-creator-how-to-use/blob/v3.8.x/proj/Spine/Creator3.8.0_2D_LoadSpine/assets/script/LoadSpine.ts#L12-21

Question2: 这个没试过,不过之前试过想将 skeletonData 置空,发现没法子。后面退而求其次,将整个 spine 当做一个预制体,加载和卸载!【有没有人有更好的法子,也可以探讨一下】

从来没有单独加载过这几个文件,我都是用预制体加载和卸载的

这样就不会存在内存泄漏吗?我刚3.5.2测试,一个场景动态加载一个spine文件,卸载后内存多了1.5M

应该多试几次,

第一次有缓存,可以理解为,加载 spine 的相关依赖,缓存下次加载更快。

如果第2次开始,还继续增加内存,那就是内存泄漏了。

老哥,那种超多spine的2D游戏,所有spine都先做成预制体么?

很简单,其实内容都是一样的,写脚本批量生成就行,而且动态加载的spine好像会有点问题

潜入Cocos内存,捞出那些赖着不走的资源 可以自己找找 :grinning: