Unity提升解压文件速度

发表于2018-05-27
评论0 8k浏览
Unity文件的随包

绝大多数的手游都会带一部分资源到手机上,这部分资源被称为随包资源,正常情况下的资源会放入Resources下或者StreamingAssets目录下。
1. Resources目录放的一般为一些基本上不会改变的资源,比如splash图片,icon图片等等(不用解压)
2. StreamingAssets目录下一般放置需要热更的资源,比如AssetBundle (需要解压)

Unity解压测试

解压目录以StreamingAssets下的为测试内容,假设目录下有5000个文件(很多小文件,很容易达到这个数量,不要觉得多了),在游戏第一次开始之前使用www 解压文件到持久化目录大概耗时在5分钟以上,根据机型不同,配置不高的机器甚至可以超过10分钟。那么问题来了,一个玩家下载你的游戏第一次进入要等到至少5分钟,相信会有很多玩家会被流失掉的,纵观一些大厂的游戏,你会发现他们也有解压的过程,但是他们做到的基本上在20s以内,那么我们今天就要做到在20s以内,降低玩家在这里的流失。

Unity文件的解压

1. 常规解压
常规解压就是我上面说的www的解压5000个文件啦,耗时我表示不能忍受,这里不做细聊,有兴趣的朋友可以去试下时间就知道了

2. 二次压缩
耗时如此久,其实归根结底是因为www这个东西的时间太久,和我们的文件大小并没有太大的关系,5000个100M的文件和5000个200M的文件耗时其实差不多,在做了这个测试以后,我发现是www的时间占用太久了。那么我们就采用了二次压缩的方式(FastZip),这样把我们零散的文件分类型压缩到一个一个的zip文件中,这样我们www的解压实际上就变得只有10个左右了,而当我们解压到了我们的持久化目录以后,在使用本地解压缩的方式去操作就会是变态的速度,最后我们算下来200M 5000个文件耗时好的手机在10s左右(三星note3),在中低等手机在20s左右,也都控制在了一个非常流程的过程,玩家基本上不用久等。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引