HybridCLR 热更新新人指南
自己没有想到在技术路的最后一程还能遇到转折点,那就是莫名其妙的要学习Unity3D承接别人给外包留下的元宇宙项目。我自然就是从0开始正式踏入了游戏开发之旅了,这个项目用到阿里达摩院的基座,里面有热更新的模块。
我自然需要了解一番,那就是用到的HybridCLR。这玩意第一眼看到还以为阿里用到的Hybrid App,用H5做的里面的电商系统呢。
后来才发现是一款热更新框架,已经淘汰了用Lua热更新的技术了。我也不用学那撇脚的Lua语法,我心里面也是暗爽。
下面是元宇宙设计的大致架构,自然还是有很多细节技术支撑的。
说了背景一大堆,现在正式开始进入正题。
指南的测试环境
- macOS 13.3
- Unity 2021.3.16f1c1 (LTS)
- HybridCLR 2.1.0
主要参考官方示例 github.com/focus-creat…
1 安装
在全新的Unity工程进行测试的,没有做其他情况测试。
1.1 安装hybridclr_unity
创建一个新的工程我就省略了不写了
我们就只说一下通过Gitee URL方式进行安装,其他的可以看一下官方文档focus-creative-games.github.io/hybridclr/h…
-
1.1.1 打开Package Manager
-
1.1.2 添加 Package
1.2 初始化HybridCLR
HybridCLR Installer 只需要执行一次安装即可
1.3 安装BetterStreamingAssets
-
通过 URL安装(和安装1.1步骤一样)
-
通过源代码安装
-
通过Asset Store进行安装
1.4 安装HybridCLR-HotReload 资源包
-
1.4.1 从下面链接下载资源包
-
1.4.2 将资源包导入到工程
-
1.4.3 打开Assets/Scenes/Main.scene 作为主场景(可以删除自动生成的SimpleScene.scene场景了)
2 配置
打开Build Setting
打开Play Settings
2.1 关闭GC
2.2 设置为IL2CPP
2.3 设置为.Net Framwork
2.4 配置HybridCLR
2.4.1 配置热更新Dlls
2.4.2 配置补充元数据AOT Dlls
3 使用
3.1 CompileDLL
3.2 Generate
3.3 Build Stream Asset
4 测试
4.1 运行测试
4.1.1 运行工程
4.1.2 修改代码运行
我们在HotUpdateMain.cs添加下面代码
再次运行代码
此时已经达到运行时候测试热更新,是不是觉得和平时没什么区别,请看一下下面的测试。
4.2 发布测试
4.2.1 打包发布
名字可以随便取
运行 App.app进行测试
你是不是没看到这是热更新的输出!这个输出,因为刚才我们没有重新打包。
4.2.2 热更新替换
4.2.2.1 重新进行Build Stream Asset
4.2.2.2 复制资源文件到App
复制Assets/StreamingAssets下的所有文件到xxx/App.app/Contents/Resources/Data/StreamingAssets下面
4.2.2.3 重新运行App
此时已经做到重新运行热更新了
结语
其实每个平台热更新后面步骤还是不一样的,这一篇文章可以作为一个参考。