最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity huatuo 革命性熱更系列1.2 huatuo熱更環(huán)境安裝與示例項目

2022-07-08 09:08 作者:博毅創(chuàng)為  | 我要投稿


1.2 huatuo熱更環(huán)境安裝與示例項目

上一節(jié)我們分析了huatuo的原理與優(yōu)勢,相信大家迫不及待想體驗一下huatuo熱更新,本節(jié)我們來安裝huatuo的開發(fā)環(huán)境,然后運行示例項目,來體驗下huatuo做熱更新。

huatuo?熱更開發(fā)環(huán)境的安裝

使用huatuo之前,我們先準(zhǔn)備好開發(fā)環(huán)境,Unity版本,官方的huatuo版本采用的是unity 2020.3.33f1的這個版本,建議大家也用這個版本來做。安裝好visual studio 2019開發(fā)環(huán)境,并且安裝C/C++的開發(fā)工具集合。安裝Unity的時候,我們一定要勾選上Windows IL2CPP,方便我們等下在Windows平臺上測試。接下來下載huatuo相關(guān)代碼, huatuo主要是改造了IL2CPP,所以依賴的代碼庫如下

(1)huatuo核心代碼庫,負責(zé)指令轉(zhuǎn)換,解釋執(zhí)行,源碼下載

(2)IL2CPP_huatuo: huatuo針對IL2CPP的修改與改動,源碼下載

(3)huatuo-tutorial: huatuo熱更新的示例項目,源碼下載;

下載完成后,你將獲得3個源碼包,如圖所示1.2-1:

圖1.2-1

解壓huatuo項目的源碼包,解壓il2cpp_huatuo項目源碼包。解壓后,將huatuo項目子文件夾”huatuo”,復(fù)制到il2cpp_huatuo項目的libil2cpp目錄下。如圖1.2-2所示:

圖1.2-2

準(zhǔn)備好libil2cpp的huatuo環(huán)境后,我們把這個文件夾”libil2cpp”拷貝到Unity引擎的IL2CPP對應(yīng)的目錄下,拷貝之前,記得先備份原來的。如圖1.2-3,Unity編輯器2020.3.33 il2cpp中的libil2cpp。

圖1.2-3

到此huatuo的開發(fā)環(huán)境就準(zhǔn)備好了。


運行huatuo熱更示例項目

Huatuo開發(fā)環(huán)境安裝好了以后,接下來我們就可以運行實例項目,實例項目很簡單,我們解壓代碼包huatuo_trial, 解壓開來后用Unity 2020.3.33打開這個項目,項目的目錄結(jié)構(gòu)如圖1.2-4:

圖1.2-4

圖1.2-5

進入文件夾”HuatuoData”后,運行init_local_il2cpp_data腳本,這樣就生成了Localil2cppData文件夾。

圖1.2-6

接下來我們就用Unity打開huatuo的實例項目,在測試熱更新的時候,先配置一下項目的基本的配置(當(dāng)然示例項目已經(jīng)配置好了,但是我們自己項目還是要注意)如圖1.2-7。

圖1.2-7

由于huatuo是基于IL2CPP 來擴展解釋執(zhí)行IL的.dll。這個時候我們就需要把一些我們可能要熱更的部分進行拆分,這里使用unity的ADF機制,每創(chuàng)建一個.asmdef文件,Unity就會為你生成一個新的.net項目工程,這樣做的好處就可以分功能來進行代碼熱更(比如大廳+子游戲,可以把每個子游戲分成對應(yīng)的.dll),同時分功能來編譯,不至于修改功能A的代碼要所有的項目都編譯,導(dǎo)致后期開發(fā)越來越慢。

圖1.2-8

這樣我們就已經(jīng)把項目分按功能劃分成了幾個工程,然后可以打包出來每個工程的基于IL的.dll庫。這樣就可以針對要熱更的.dll來做加載。

我們正式項目的時候,可以把這些.dll利用AOT一起編譯,如果要熱更某個庫,先判斷一下是否服務(wù)器上有最新的.dll,如果有就可以在運行的時候加載這個,否則就跑默認的AOT后的代碼就可以了(獲得更好的AOT級別的性能,畢竟解釋執(zhí)行IL指令,性能也有開銷)。

接下來我們來試試熱更新, 示例項目擴展了一個菜單,可以打包出所有項目的IL指令代碼的.dll, 這個菜單擴展為”Huatuo”---> “CompileDall”, 這樣就可以把當(dāng)前的所有項目的.dll全部打出來,不管你是否熱更新。生成了IL的.dll后,我們?nèi)绻麑⑦@些.dll打包成資源包,部署到服務(wù)器上,從資源包里加載IL代碼到IL2CPP VM就可以實現(xiàn)熱更了,所以又有一個菜單”Huatuo”---> “BuildBundles”, 會把這些.dll打出ab包。(這里是示例,不是規(guī)定必須要這樣做,不同的項目可以根據(jù)你自己來定制,后續(xù)做框架時我教自己的策略,在這個案例中會把.dll打包到common ab包中,我們來看下common ab包的mainifest。)

圖1.2-9

接下來測試下熱更新, 編譯完成.dll與打包ab包后,我們發(fā)布一個win的版本我們加它1.0,build的出來后,運行如下:

圖1.2-10

第一版中打印,有######,接下來我去掉這個######,然后重新編譯,打包Hotfix.dll到新common ab包,并直接復(fù)制common ab包到打包后的StreammingAssets下,如圖:

圖1.2-10

今天的分享就到這里了, 關(guān)注我們, 接下來還會繼續(xù)更新huatuo熱更的系列教程。

下節(jié)預(yù)告: huatuo?熱更示例項目源碼分析

附:視頻教程

Unity / 精選推薦 huatuo 熱更新原理與實戰(zhàn)詳解www.bycwedu.com/promotion_channels/308905031www.bycwedu.com/promotion_channels/308905031


Unity huatuo 革命性熱更系列1.2 huatuo熱更環(huán)境安裝與示例項目的評論 (共 條)

分享到微博請遵守國家法律
孝昌县| 大渡口区| 壶关县| 兖州市| 新源县| 密山市| 桓台县| 大新县| 工布江达县| 涪陵区| 汉川市| 晋州市| 温州市| 秭归县| 张家港市| 马龙县| 通州区| 文登市| 固安县| 涟水县| 南川市| 平南县| 永川市| 海城市| 车险| 拉萨市| 丰镇市| 汝南县| 潮州市| 福海县| 梅河口市| 苏尼特右旗| 定远县| 福贡县| 集安市| 松阳县| 北碚区| 桓仁| 潞西市| 巫溪县| 华宁县|