亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

客戶端熱更新框架之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

宁陵县| 乳源| 四川省| 卢氏县| 余庆县| 铜鼓县| 黎平县| 陇西县| 沁源县| 开鲁县| 游戏| 阿坝县| 兴仁县| 沾化县| 图木舒克市| 武陟县| 利辛县| 洪湖市| 绍兴县| 德昌县| 乌拉特后旗| 麦盖提县| 孝感市| 巴南区| 海南省| 瑞昌市| 犍为县| 工布江达县| 蓝山县| 桂阳县| 马尔康县| 陇川县| 保山市| 大方县| 合山市| 美姑县| 潮安县| 永昌县| 广西| 枝江市| 新晃|