对于搞过微信小游戏的朋友都知道微信小游戏的资源包内体积不能超过4M,超过了4m的话在微信开发工具中不要说上传了,你连预览都预览不了,那么对于稍微体积大一点的小游戏就有点尴尬了,当初为了这个限制确实也是弄的很蛋疼,为了减少包体就压图,导致的结果会是有些图的质量在游戏中显得很差,所以后来根据文档把资源部署到服务器上确实解决了很大的问题,没弄过的朋友可以先去看看文档,链接https://docs.cocos.com/creator/manual/zh/publish/publish-wechatgame.html,看发布到小游戏的资源管理这部分,如下图:
现在我说一些需要注意的地方和流程,首先构建时,在 构建发布 面板中勾选 md5Cache 功能。然后设置 远程服务器地址,然后点击 构建,说一下这远程服务器地址,在测试的阶段,我们可是使用本地服务器去测试,接着构建完成后将微信小游戏发布包目录下的 res 文件夹完整的上传到服务器,最后删除本地发布包目录下的 res 文件夹。这个是文档给的流程。我说下具体做法,首先是代码部分,需要你在游戏启动的时候去做平台判定,因为你肯定不仅仅只做微信平台对吧,对于不需要的,小伙伴自行考虑删除吧,调用init方法
init(){
if(cc.sys.platform==cc.sys.WECHAT_GAME){
console.log('当前环境为微信环境');
this.weChat_GameInit();
}else if(cc.sys.platform==cc.sys.ANDROID){
console.log('当前环境为安卓环境')
this.enterGame();
}else if(window.swan != undefined){
console.log('当前环境为百度小程序环境')
this.bdGameInit();
} else {
console.log('其他环境');
this.enterGame();
}
},
接下来就是微信平台的话,你需要先判断本地有没有本地存储的资源,没有的话从服务器上把res的压缩包下下来,然后解压是吧,所以之后的代码如下(代码中有些代码是无用的,可根据流程自行选择):
//微信初始化 ,这里我做了本地存储版本的值,这样更新版本的时候,会删除旧的下载新的
weChat_GameInit(){
let version=cc.sys.localStorage.getItem(WECHAT_GAME_VERSION);
if(version!=Game_Version){
wx.getFileSystemManager().rmdir({
dirPath: wx.env.USER_DATA_PATH + "/res",
recursive: true,
complete: function () {
game.loadZIPFile();
}
});
}else {
game.enterGame();//直接进入游戏
}
},
// zip下载文件
loadZIPFile() {
const self = this;
wx.downloadFile({
url: wxDownloader.REMOTE_SERVER_ROOT + "/res.zip",
success: function (res) {
self.unZipFile(res.tempFilePath, wx.env.USER_DATA_PATH);
},
fail: function (err) {
game.showWxModel("下载文件失败,请稍后重试");
}
});
},
//解压文件
unZipFile(resource, tartet) {
wx.getFileSystemManager().unzip({
zipFilePath: resource,
targetPath: tartet,
success: function () {
//资源解压成功之后就可以开始进入游戏的流程啦
game.enterGame();
cc.sys.localStorage.setItem(WECHAT_GAME_VERSION, Game_Version);
},
fail: function (res) {
game.showWxModel("解压失败,请稍后重试");
}
});
},
好了,代码部分就这么多,接下来构建就行了,别忘记配置远程服务器地址,测试的话,可以用本地的服务器地址就好,然后我详细说一下,测试阶段用的本地服务器地址,我用的是这个方法做的,如下图:
总之,你只要能在百度上用访问到自己的本地服务器下资源文件夹就行,方式很多,不详细说了,然后把你构建出来的wechatgame文件夹下的res文件复制到本地服务器的文件夹下就行,然后打成zip包,然后把wechatgame文件夹下的res文件删了就行,然后你就可以运行了,在你的微信开发工具里看效果了,在微信开发工具里把不校验合法域名勾选上,最后你就能看到效果了,只不过第一次加载资源的话肯定是稍微慢点,当本地有缓存了之后在进入就会快很多,如果依旧没什么问题的话,就可以把访问的地址改成你们正在用的服务器地址,把res文件和res的zip包放在你们服务器对应的文件夹下面,如果嫌进入游戏加载资源慢的话可以加个CDN,访问能稍微快点,但是第一次进都会稍微慢点,因为要下载资源呀!微信小游戏的说完了,我下篇文章会说一下百度小游戏的资源部署到服务器上,其实都是一样的。
转载:https://blog.csdn.net/qq_34772097/article/details/102489253