现在微信小游戏的项目资源包大小已经由4M改成了8M,为的就是适应小游戏越来越丰富的玩法。
但是,就算有8M也是不足以做大部分游戏的,因为项目中的图片资源就有很多了,绝大部分游戏的资源(除了代码)都在10M以上。
所以对于CocosCreator要打包成小游戏的项目,我们都会统一把资源放在资源服务器上面。
这样,我们可以在小游戏开始运行的时候,只加载游戏的代码文件,而对于资源文件,就可以在加载完代码文件后,慢慢来加载。
这样做有三个好处:
避开小游戏项目资源大小不能超过8M的限制
避开不可以从远程服务器下载脚本文件的限制
可以进行动态加载,避免游戏初次运行时需要加载过多的文件而导致的卡顿
对于以上的第3点,就算不是因为小游戏资源包大小的限制,绝大多数游戏也是需要采取这样的游戏优化策略,所以我们应当把资源放到服务器上。
对于上面的总结,我之前想到一个问题:
就是CocosCreator中对于Prefab的引用有动态加载的和静态加载(编辑界面拖拽)的这两种。
而对于静态加载的已经在脚本中绑定,这样预制体加载(意味着脚本也加载了)的时候可能资源还没有加载,这样脚本会不会不能成功绑定资源?
对于这个问题,我后来发现了Creator官网上说的一句:
对于小游戏包内资源,小游戏环境并不是按需加载的,而是一次性加载所有包内资源,然后再启动页面。
这样,就意味着,脚本加载了的同时,资源肯定也是加载了的,所以问题就可以解决。
下面,引用官网上的一段文字,对远程资源的管理讲解得比较简洁明了:
在小游戏环境中,我们提供了一个 wxDownloader 对象,给它设置了 REMOTE_SERVER_ROOT 属性后,引擎下载资源的逻辑就变成:
&n