大家都知道,做為游戲開發(fā),現(xiàn)在公司肯定會問你會不會LUA,會不會熱更新,等。直入主題哈,今天給大家分享一下游戲中MD5校驗和資源代碼熱更。當然只是從服務器把資源代碼更新到本地,并不會給大家講解lua,因為要慢慢來嘛,一下也講解那么多也消化不了,那就期待,開始吧!
首先,我們開發(fā)引擎是Unity,Windows平臺,用的服務器為阿里云,在上面布置了TomCat做為我們的資源服務器。
先來看一下我們的資源,在我們電腦上創(chuàng)建一個Resources文件夾,里面放我們的資源,

這時,我做了一個md5工具,發(fā)布出來了,有需要的可以找我哦(這個不是免費的午餐)!不多說了如圖

我們運行這個md5工具,如下

選擇我們的Resources文件夾,然后點擊生成,會生產一個校驗文本,會讓你選擇生產目錄如下

我們還選擇Resources文件夾下,然后點擊保存,如下

這時,我們校驗文本就生成了,我們來看一下

?接下來,我們把我們的資源文件拷貝到我們的服務器啦。
打開我們的阿里云服務器,找到我們安裝的的tomcat文件夾下webapps下Root文件夾,把我們的Resources文件夾,拷貝過來,如下

這時我們運行我們的Tomcat,如下

服務器,這面的工作就做好了,接下來,就到重點了,在Unity里編寫我們的更新校驗代碼啦。
我們創(chuàng)建一個檢查更新的場景叫做UpdateCheck,創(chuàng)建個空物體CheckDataUpdate,當然要創(chuàng)建個c#腳本掛在上面了哦,叫做ResUpdate,如下

,接下來看我們的代碼,講解一下原理呀,就是我們客戶端的md5校驗文本和服務器上的校驗文本對比呀,本地沒有的更新,有的不一致的則把本地的替換成從服務器下載下來的。嗯 就這么簡單。
手機(Android)的我們把更下的資源放在持久化目錄了,就是Application.persistentDataPath,可讀可寫,PC版本就放在Resource文件夾下了貼代碼

更新對比的文本叫version.txt,第一次,本地沒有會自動從服務器全更的哦。我們的服務器地址,跟下的本地地址,要更新文本名稱保存在List集合里。

進行檢測了,里面我做了一些網絡的東西,斷網提示和短線重連一類的,大家可以忽略。


第一次,更新進行對比,本地文件加載用的www,服務請求用的UnityWebRequest

繼續(xù)貼代碼





貼完了,接著我們運行一下看看,

提示資源在更新了,并且我打印了更新文件的名字,這時我們可以做進度條哦,有興趣的。
有需要幫助的可以加我扣扣:95106197(因為工作比較忙,不是免費的晚餐哦),驗證附加:MD5資源熱更