1. 程式人生 > >U3D 程式碼、資源熱更新

U3D 程式碼、資源熱更新

原理:比較檔案的MD5值,不同,代表檔案有更改,版本需要改變

使用Tools 下面的make_res.bat檢測data資料夾下的檔案MD5值,生成res_list.lst和full_res_list.txt和vertion三個檔案。

1.要在生成目錄下的etc目錄下建立一個apk版本的檔案,假設為:base.ini,這個檔案是用來比較apk版本的,每次打包apk都要手動修改base.ini中版本號(與Bundle Vertion Code保持一致),因為每次打包,PlayerSetting下的Bundle Vertion Code都應該+1(不更改說明APK底層程式碼不變,也沒有必要再打包,Google Play每次上傳APK,它的Bundle Vertion Code都要比以前APK的大,否則會上傳失敗),遊戲每次啟動前第一個下載的就是它,通過它與本地的base.ini比較來判斷APK是否有更新,有則更新APK,並安裝。

(Tips:PlayerSetting下Bundle Vertion是顯示在客戶端的版本號,沒什麼卵用,是個string,Bundle Vertion Code是開發使用的版本號,客戶端不可見,用來判斷APK檔案是否有更新,需要手動修改,是Int型別。打包釋出到平臺一般需要簽名,要自己新建一個簽名檔案在U3D Player Setting裡面,否則使用的是debug簽名,這個簽名檔案已過期)

2. vertion是版本資訊檔案,用來告訴客戶端從哪個資料夾下下載資源(每次用Tools比較版本都會+1,並增加一個資料夾),遊戲每次啟動前都會從伺服器下載該檔案和本地的vertion.txt進行對比,來判斷是否有資源更新

3. res_list.lst是遊戲資原始檔,包含版本、資原始檔名、資源大小等資訊,如果步驟2版本不同,則會下載該檔案,用來更新資源或程式碼

4. full_res_list.txt也包含的全部的資源,只不過full_res_list 儲存了檔案的MD5碼,是用來與下次檔案的MD5碼進行比較,生成新的full_res_list和res_list.lst,遊戲客戶端沒有用到。

一般用Tools將資源生成到appache目錄下的htdocs,開啟appache後,就可以通過Http協議下載檔案了

相關推薦

U3D 程式碼資源更新

原理:比較檔案的MD5值,不同,代表檔案有更改,版本需要改變 使用Tools 下面的make_res.bat檢測data資料夾下的檔案MD5值,生成res_list.lst和full_res_list.txt和vertion三個檔案。 1.要在生成目錄下的etc目錄下建立一

Unity3D更新之LuaFramework篇[09]--資源更新程式碼更新的具體實現

前言 在上一篇文章 Unity3D熱更新之LuaFramework篇[08]--熱更新原理及熱更伺服器搭建 中,我介紹了熱更新的基本原理,並且著手搭建一臺伺服器。 本篇就做一個實戰練習,真正的來實現熱更新功能。 一、準備工作 1、製作一個用於熱更新的介面 此前我製作了

【學習】Unity手遊之路<十二>手遊資源更新策略探討

似的 remove 方式 comment word rep 熱更新 style encoding http://blog.csdn.net/janeky/article/details/17666409 =================================

ToLua更新之LuaFramework框架之資源更新(2)

1、建立物體 為了除錯的方便,筆者先將框架配置為本地模式,待測試熱更新時再改成更新模式。 圖:配置為本地模式 先測試個簡單的建立物體,新建一個名為go的物體,然後設定它的座標為(1,1,1)。這段程式碼雖然不涉及資源載入,但能展示“把物體新增到場景中”的過程。M

Unity 伺服器踩坑 Node.js 與 Express 資源更新與檔案傳輸(三)

一、下載安裝Node.js 安裝,傻瓜式點選教程 二、安裝Express 開啟cmd一步一步cd進入C:\Program Files\nodejs\node_modules\npm資料夾下 然後執行npm install --sav

Vuforia功能記錄(六)------ 動態載入 + 識別資源更新

AR開發交流群 : 891555732 ,歡迎加入一起交流 之前寫的動態載入dataset進行識別,應群中小夥伴的要求,整了一下熱更識別的demo 完整專案下載地址 : https://download.csdn.net/download/dengshunhao/10837

lua檔案更新無效和資源更新無效的問題

好久沒來了,本來寫部落格是為了記錄自己遇到的問題或者轉發一些好的文章的 但前一陣子太忙 一時都忘了上來記錄問題 直到前一陣子遇到熱更問題才想起來要記錄一下 1.遊戲之前沒加密 後來加密了 隔了2 3

ionic利用gulp混淆程式碼與編譯更新

前言 如果你Ionic專案即有混淆又有熱更新機制,雖然常規目錄結構可以滿足二者,但編譯過程是非常複雜,ionic預設讀取的是www目錄,而混淆後的原始碼是打包在app中,再加上熱更新的配置也預設是生成在www中,這樣一來熱更新的md5對比檔案就存在不一致的情況,那麼問題來了,有辦法可以解決嗎?答案是肯定的,

unity 資源更新+顯示進度條:根據uri下資源

實現傳入uri,下載對應的資源,並且能支援多個uri的下載 例如: List<string> listUri = new List<string>(); List<string> lis

Unity3D資源更新(一)

弄了個簡單卻很完整的資源熱更新模板:感覺網上針對5.0以後打包的東西太少了,很多人找了半天還是5.0以前的,要麼就是繞來繞去不繞死你的秀技巧的框架。 現在Vinici基於Unity5.4弄了一個例子供參考,程式碼的載入模組沒有做,這塊感覺變數太大,還是自己根據

IntelliJ IDEA - 部署(更新HTML/JSP/JS/CSS程式碼不用重啟Tomcat)

前言 前端熱部署(更改前端程式碼,不用重啟tomcat,重新整理瀏覽器就可以)。   步驟 Ps:主要在於 On frame deactivation 選項配置選擇為 Update classes and resourses (當且僅當在Deployment配置頁

Android更新技術——TinkernuwaAndFixDexposed

一、熱修復技術作用   線上app BUG緊急修復,不重新發版,不重新安裝,線上遠端修復問題 二、侷限性與適用場景 補丁只能針對單一客戶端版本,隨著版本差異變大補丁體積也會增大; 補丁不能支援所有的修改,例如AndroidManifest; 補丁無論對程式碼還是資源的更新成功率都無法達到1

碼雲GitHub如何更新fork後的程式碼

碼雲、GitHub上有個很方便的功能叫fork,將別人的工程一鍵複製到自己賬號下。這個功能很方便,但有點不足的是,當源專案更新後,你fork的分支並不會一起更新,需要自己手動去更新(並且因為要保留自己修改後的程式碼,更不可使用強制更新的方法)。 命令列方法 1、在本地裝好Git客戶端,或者G

Unity 程式碼編譯成dll 更新dll實現程式碼

Unity 程式碼編譯成dll 更新dll實現熱更程式碼 實現流程 程式碼編譯成DLL DLL打包成AssetBundle 載入AssetBundle 載入程式碼程式集 獲取指定類 使用反射賦值 C#程式碼編譯成DLL 使用VS建立類庫專案 模版-&

ionic4.0 詳細更新 自動模式以及手動模式--秒殺網上一切更新因為網上沒有手動更新的詳細程式碼 測試無誤上線釋出了的東西.

ionic4.0 詳細熱更新 自動模式以及手動模式(全)–純手打,獨一無二,絕對好用. 網上一大堆ionic 熱更新,但是都是說的最基本的自動更新操作,安裝幾個外掛,改幾個配置檔案,就草草了事,讓我真的很煩躁,通過自己不斷的查詢,終於守得雲開見月明,找到了手動

nodeJs 程式碼更新

在開發node過程中,每次修改程式碼都需要重新啟動服務,是一件很抓狂的事情 使用nodemon熱載入可以幫我們很好的解決這一問題 1. 安裝 npm install nodemon -g 2. 修改npm啟動項 "scripts": { "start": "nodemon

懶載入載入(開發者模式)部署預載入更新

熱部署:直接重新載入整個應用(生產環境),清空記憶體重新打包,重新解壓war包 熱載入:在執行時重新載入class(開發環境),基於位元組碼的更改,不釋放記憶體開發可用,上線不可用,熱載入不重啟tomcat,不重新打包 懶載入:延遲載入, 實現方法:先在頁面中

git操作 —— 檢視倉庫更新程式碼更改賬戶忽略規則

1.檢視連線遠端的倉庫 git remote -v 2.git 更新伺服器程式碼到本地 沒有任何修改就用 git pull 3.更新程式碼到遠端伺服器 git add --all 檔案新增到版本控制器 git commit -m “本次提交描述” 該命令會

Ios更新,實時程式碼更新,動態更新,動態庫framework

動態更新,iOS有三種處理方案 1,開源框架reactive native,但是程式語言是js iOS app可以在執行時從伺服器拉去最新的js檔案到本讀,然後執行,因為js是一門動態的指令碼語言 所以可以在執行時直接讀取js檔案執行,也因此能夠實現iOS的熱更新

【不斷更新貼】總結程式設計的技巧語法等,需要多敲程式碼記憶掌握

1. void DrawRectangle( cv::Mat& img, cv::Rect  box ) { cv::rectangle(img,box.tl(),box.br(),cv::Scalar(g_rng.uniform(0, 255), g_rng.uni