CocosCreator微信小遊戲資源部署到服務器上

對於搞過微信小遊戲的朋友都知道微信小遊戲的資源包內體積不能超過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,訪問能稍微快點,但是第一次進都會稍微慢點,因爲要下載資源呀!微信小遊戲的說完了,我下篇文章會說一下百度小遊戲的資源部署到服務器上,其實都是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章