产品类型是放置、合成类型的游戏,项目最终美术资源有60M。根据玩家反馈信息得出:iPhone6、iPhone6s手机崩溃率较高。现阶段采取纹理压缩方式降低内存
关于整个纹理压缩的流程:
一、在编辑器里设置需要压缩的美术资源。在我们项目中android手机采用的etc1,iPhone手机采用的是pvrtc4格式。
二、把导出的所有纹理压缩文件(.pkm,.pvr)用gzip压缩
三、小程序客户端下载相应的压缩文件,下载完成后,解压相应的压缩文件,再供引擎使用。
说明:美术资源纹理压缩后的资源要比png文件大好几倍,为了减少用户的下载时间,对纹理压缩后的资源用gzip再次压缩。
在这个流程中有许多风险:
1)刚刚说了纹理压缩后的资源再次用gzip进行了压缩,但是gzip压缩后的文件不能被引擎直接使用,需要解压后才能被正常使用。而微信下载正常的.png文件,得到的是一个临时文件,这个临时文件直接被引擎使用。请问:我这样手动的解压gzip在实际的情况下有没有风险?(iPhone6、iPhone6s手机测试暂时没有发现异常情况)
2)我们项目中的美术资源过大,用户正常玩游戏,在一个段时间后,本地游戏包大小会达到50M,在用户后续的游戏中,下载的美术资源无法再写入本地。请问:引擎会不会自动清理本地暂时不用的文件、wx-downloader.js中的cleanOldCaches接口在何时调用?
3)对于正常的.png文件,小游戏客户端直接使用的是下载后的临时文件,如果本地游戏包达到50M后,只会影响临时文件写入本地的过程,并不会影响整个游戏(无非下次进入游戏重新下载罢了)。但是对于gzip压缩包来说,微信的unzip接口只能解压到本地路径下,如果游戏包达到50M后,unzip就会失败,导致无法正常游戏。请问:后续引擎是否直接支持读取gzip压缩文件?
急需引擎组的解答!!!
-
Creator 版本:2.1.4
-
目标平台:微信小游戏


