小游戏资源缓存区空间不足

前一段时间开发了一款小游戏,在测试的时候,刚开始的几次测试没问题,测试次数多的时候,尤其是更新了资源,小游戏的log中会出现报错:

         saveFile:fail the maximum size of the file storage limit is exceeded

         It might be due to out of storage spaces, you can clean your storage spaces manually.

一直不知道咋处理,看文档才知道微信小游戏的资源缓存区是有限制的,现在已经是限制50mb,后来也是翻阅了网上的资料,发现有的方案可行,有的一点用都没有,在这里说一个可行的方案,亲测有效

方案一:

     

 

具体方式:就是找到小程序的wx-downloader.js文件,在该文件里搜索到wx.saveFile接口,在fail函数里加入fs.rmdirSync('wxfile://uer/res',true);即可,如果res没有权限的话,路径可以再细化一点,wxfile://uer/res/...,具体以实际情况为准,再出现资源缓存区已满的情况小程序就会自动清除以前的缓存的资源垃圾,简单粗暴。

 

方案二:

方案一太粗暴,方案二更细致一点,具体操作,在加载游戏的场景添加一个loading脚本添加一个属性public readonly currentVersion用来记录每次发布的版本,将该属性的值保存到本地,cc.sys.localStorage.setItem('CurrentVersion', Loading.currentVersion)

载入游戏之后校验版本,不一致则清掉旧版本的缓存

const currentVersion = cc.sys.localStorage.getItem('CurrentVersion');

                if (currentVersion !== Loading.currentVersion) {

                    cc.assetManager.cacheManager.clearLRU();

                    cc.sys.localStorage.setItem('CurrentVersion', Loading.currentVersion);

                }

                this.Login();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值