Unity huatuo 革命性热更系列1.2 huatuo热更环境安装与示例项目

1.2 huatuo热更环境安装与示例项目

上一节我们分析了huatuo的原理与优势,相信大家迫不及待想体验一下huatuo热更新,本节我们来安装huatuo的开发环境,然后运行示例项目,来体验下huatuo做热更新。

对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀

huatuo 热更开发环境的安装

使用huatuo之前,我们先准备好开发环境,Unity版本,官方的huatuo版本采用的是unity 2020.3.33f1的这个版本,建议大家也用这个版本来做。安装好visual studio 2019开发环境,并且安装C/C++的开发工具集合。安装Unity的时候,我们一定要勾选上Windows IL2CPP,方便我们等下在Windows平台上测试。接下来下载huatuo相关代码, huatuo主要是改造了IL2CPP,所以依赖的代码库如下

(1)huatuo核心代码库,负责指令转换,解释执行,源码下载

(2)IL2CPP_huatuo: huatuo针对IL2CPP的修改与改动,源码下载

(3)huatuo-tutorial: huatuo热更新的示例项目,源码下载;

下载完成后,你将获得3个源码包,如图所示1.2-1:

图1.2-1

解压huatuo项目的源码包,解压il2cpp_huatuo项目源码包。解压后,将huatuo项目子文件夹”huatuo”,复制到il2cpp_huatuo项目的libil2cpp目录下。如图1.2-2所示:

图1.2-2

准备好libil2cpp的huatuo环境后,我们把这个文件夹”libil2cpp”拷贝到Unity引擎的IL2CPP对应的目录下,拷贝之前,记得先备份原来的。如图1.2-3,Unity编辑器2020.3.33 il2cpp中的libil2cpp。

图1.2-3

到此huatuo的开发环境就准备好了。

运行huatuo热更示例项目

Huatuo开发环境安装好了以后,接下来我们就可以运行实例项目,实例项目很简单,我们解压代码包huatuo_trial, 解压开来后用Unity 2020.3.33打开这个项目,项目的目录结构如图1.2-4:

图1.2-4

图1.2-5

进入文件夹”HuatuoData”后,运行init_local_il2cpp_data脚本,这样就生成了Localil2cppData文件夹。

图1.2-6

接下来我们就用Unity打开huatuo的实例项目,在测试热更新的时候,先配置一下项目的基本的配置(当然示例项目已经配置好了,但是我们自己项目还是要注意)如图1.2-7。

图1.2-7

由于huatuo是基于IL2CPP 来扩展解释执行IL的.dll。这个时候我们就需要把一些我们可能要热更的部分进行拆分,这里使用unity的ADF机制,每创建一个.asmdef文件,Unity就会为你生成一个新的.net项目工程,这样做的好处就可以分功能来进行代码热更(比如大厅+子游戏,可以把每个子游戏分成对应的.dll),同时分功能来编译,不至于修改功能A的代码要所有的项目都编译,导致后期开发越来越慢。

图1.2-8

这样我们就已经把项目分按功能划分成了几个工程,然后可以打包出来每个工程的基于IL的.dll库。这样就可以针对要热更的.dll来做加载。

我们正式项目的时候,可以把这些.dll利用AOT一起编译,如果要热更某个库,先判断一下是否服务器上有最新的.dll,如果有就可以在运行的时候加载这个,否则就跑默认的AOT后的代码就可以了(获得更好的AOT级别的性能,毕竟解释执行IL指令,性能也有开销)。

接下来我们来试试热更新, 示例项目扩展了一个菜单,可以打包出所有项目的IL指令代码的.dll, 这个菜单扩展为”Huatuo”---> “CompileDall”, 这样就可以把当前的所有项目的.dll全部打出来,不管你是否热更新。生成了IL的.dll后,我们如果将这些.dll打包成资源包,部署到服务器上,从资源包里加载IL代码到IL2CPP VM就可以实现热更了,所以又有一个菜单”Huatuo”---> “BuildBundles”, 会把这些.dll打出ab包。(这里是示例,不是规定必须要这样做,不同的项目可以根据你自己来定制,后续做框架时我教自己的策略,在这个案例中会把.dll打包到common ab包中,我们来看下common ab包的mainifest。)

图1.2-9

接下来测试下热更新, 编译完成.dll与打包ab包后,我们发布一个win的版本我们加它1.0,build的出来后,运行如下:

图1.2-10

第一版中打印,有######,接下来我去掉这个######,然后重新编译,打包Hotfix.dll到新common ab包,并直接复制common ab包到打包后的StreammingAssets下,如图:

图1.2-10

今天的分享就到这里了, 关注我们, 接下来还会继续更新huatuo热更的系列教程。

下节预告: huatuo 热更示例项目源码分析

附:视频教程

[Unity / 精选推荐 huatuo 热更新原理与实战详解www.bycwedu.com/promotion_channels/308905031

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容