91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

客戶端熱更新框架之UI熱更框架設計(下)

發布時間:2020-02-29 01:24:05 來源:網絡 閱讀:428 作者:Liu_guozhu 欄目:游戲開發

????上一篇筆者介紹了關于什么是熱更新,為什么需要熱更新的技術文章。本篇就專門針對UI框架的熱更新功能實現部分展開討論,討論的重點是熱更新如何與UI框架進行結合?
????現在筆者把設計“UI熱更新框架”的整體設計與構建過程表述如下,最后附帶源碼工程的下載鏈接,供廣大學員參考研究。如果大家有什么不明白的地方,歡迎大家在評論區進行討論。
? ?
1:首先基于筆者以前設計的SUIFW 框架,做進一步功能完善。
???? 完善UI框架對于復雜窗體的直接轉向功能。為了小伙伴們能夠更好的理解本技術,文章末尾特提供了下載鏈接供大家參考。

客戶端熱更新框架之UI熱更框架設計(下)


2:經過重構完善后UI框架與AB框架(即:AssetBundle 框架,本框架文章末尾提供×××鏈接) 的初步資源、腳本整合處理。
?? ????2.1> 建立一個全新的項目名稱例如:UIPlusABFramework。
?? ????2.2> 項目中增加存放需要打包資源的目錄。 例如“AB_Resurces”目錄。
?? ????2.3> Resources目錄原來的資源文件,除了配置文件外,全部拷貝到AB_Resources 目錄下。使用AB框架,對資源進行打包處理,加載到StreamingAssets 目錄下。

3:原始UI框架核心類(UIMangager.cs)的改動。
????? 3.1> 把原UI核心類底層加載機制 Resources.Load() 的單機職能,改為以AB框架為核心的AB包的調用加載機制。
具體說明:
??????? ResourcesMgr.GetInstance().LoadAsset(strUIFormPaths, false);
?????? 替換為??????

?????? AssetBundleMgr.GetInstance().LoadAssetBundlePack(xx,xx,xx,LoadAllABComplete){}
??? ?? private void LoadAllABComplete(string abName){}

????? 3.2> 原本”Resources” 類需要的UI窗體路徑的(基于Json配置文件的)參數, 改為了以AB框架中“場景名稱、包名稱、資源名稱”為參數核心的機制。當然本部分也需要對核心配置文件"UIFormsConfigInfo.json" 做大的改動。(具體在第4節詳述)。

????? 3.3> 由于UIMangager.cs中,對于直接調用AB框架核心API,有很多不方便的地方。即需要寫很多代碼,且從UI與AB兩大框架解耦的思想出發,特設計一個中間過渡腳本(例如: ABLoadAssetHelper.cs),利于兩大框架之間的低耦合處理。本設計過程參考經典設計模式中的“代理模式”、“橋接模式” 等思想。

???? 3.4> 以上兩大框架的結合與重構難點在于: 原始UI框架本質是“串行運行”,而AB框架資源調用是“并行運行”。 所以協調資源加載的先后順序是“熱更新UI框架”的重點與難點。

4: 原始UI框架核心類(UIMangager.cs)中對于Json配置文件的改動。
??????? 原始配置文件"UIFormsConfigInfo.json" 以鍵值對的方式,存儲了UI窗體預設名稱與UI窗體預設在Resources目錄下的相對路徑的映射關系。但是在改造后的配置文件,所有的AB包都是默認加載到StreamingAssets 目錄下。
??? ????所以其配置文件中的“值”,就改為AB包的參數:“場景名稱、包名稱、資源名稱”。因為有三個參數,可以定義在一行,中間加一個分隔符即可。在程序中可以做分割處理即可。詳細請讀者查看更新后定義的"UIFormsConfigInfo.json"配置文件。


5: 以上步驟開發完畢后,需要使用UI框架自帶的演示示例項目,做加載驗證測試。
????????如果可以正確無誤的運行原UI框架所有的功能設計,則我們的“熱更新UI框架”,就算是初步重構完畢了。
當然這只是筆者設計的“熱更新框架設計之客戶端熱更框架”的一小部分,我們在下一篇中,會對國內部分游戲公司所推崇的“純lua熱更新”框架進行介紹與設計講解,敬請期待。


附錄:


1: UI框架(SUIFW框架Ver1.1) 下載鏈接:
?????????? 鏈接:https://pan.baidu.com/s/1HU22Gr6GpWmT77vp4DcFZg
?????????? 提取碼:r4r7
? ?
2: AssetBundle 框架(ABFW)源碼工程下載鏈接:
?????????? 鏈接:https://pan.baidu.com/s/1VOoL9K3dUTpqxkwCcrQWYw
?????????? 提取碼:hla8

3:本文講解通過UI與AB框架整合,最終形成的“熱更新UI框架”( UIPlusABFramework)×××鏈接:
?????????? 鏈接:https://pan.baidu.com/s/1C6e2ROHsqSaBEuCtRrzqpA
?????? ????提取碼:dfq6



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台山市| 福泉市| 巴彦县| 剑河县| 新巴尔虎右旗| 长沙县| 天峨县| 原阳县| 南漳县| 桦甸市| 香河县| 萨嘎县| 永丰县| 桃园县| 桂林市| 辽宁省| 吉水县| 益阳市| 阿克苏市| 昌邑市| 普兰店市| 谷城县| 南充市| 永登县| 鱼台县| 揭西县| 和政县| 昌吉市| 金秀| 同心县| 江安县| 云安县| 分宜县| 金华市| 常熟市| 沈阳市| 鄂托克旗| 汾阳市| 仁布县| 昌乐县| 镶黄旗|