Unity热更新笔记(一)ILRuntime基础使用
简介
官方说明(翻墙)
官方的Unity Demo(中文注释)
通过运行时动态的解析指定的 DLL 中的 IL1 代码来实现热更新(我不确定我描述、用词是否足够精准)。每次更新,只需要像资源一样,替换 DLL 文件,就能改变要执行的代码
一,准备工作
1.创建Unity工程,并添加 ILRuntime 包
正常创建 unity 项目
在 Package Manager 中搜索添加 ILRuntime 包
unity 2019.4.28f1c1
2.创建热更工程
VS 创建 DLL 工程,路径最后是跟 unity 工程放一起
(如果名字后面带 ~ unity不会编译。奇怪的知识增加了.jpg)
3.热更工程添加 unity 库
在 VS 项目中添加库的引用
unity 包的路径。
(如果想在热更项目中用 unity 的 log ,需要引用 UnityEngine.CoreModule.dll)
4.需要修改热更工程打包路径
(直接放 StreamingAssets 方便测试,后续会改地方)
5.热更工程创建完毕
二,代码调用
官方Demo里面有各种调用,规规矩矩,明明白白,中文注释
用法与普通反射的写法非常相似,
三,配合 addressable 使用(coming soon)
后续文章写好后,会在此处添加链接
四,其他
另一种热更工程的创建
在 unity 项目中创建 Assembly,unity 也会编译生成对应的 dll
这样有两个问题:
- 要写脚本搬运编译好的 dll 文件。
不会吧,不会吧,不会有程序员想要手动移动文件吧 - 主项目跟热更项目没有脱离,不确定直接引用会不会有什么坑