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

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

我們運(yùn)行這個md5工具,如下

選擇我們的Resources文件夾,然后點(diǎn)擊生成,會生產(chǎn)一個校驗(yàn)文本,會讓你選擇生產(chǎn)目錄如下

我們還選擇Resources文件夾下,然后點(diǎn)擊保存,如下

這時,我們校驗(yàn)文本就生成了,我們來看一下

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

這時我們運(yùn)行我們的Tomcat,如下

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

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

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

進(jìn)行檢測了,里面我做了一些網(wǎng)絡(luò)的東西,斷網(wǎng)提示和短線重連一類的,大家可以忽略。


第一次,更新進(jìn)行對比,本地文件加載用的www,服務(wù)請求用的UnityWebRequest

繼續(xù)貼代碼





貼完了,接著我們運(yùn)行一下看看,

提示資源在更新了,并且我打印了更新文件的名字,這時我們可以做進(jìn)度條哦,有興趣的。
有需要幫助的可以加我扣扣:95106197(因?yàn)楣ぷ鞅容^忙,不是免費(fèi)的晚餐哦),驗(yàn)證附加:MD5資源熱更