介绍:

huatuo是一个特性完整、零成本、高性能、低内存近乎完美的Unity全平台原生c#热更方案。huatuo扩充了il2cpp的代码,使它由纯AOT (opens new window)runtime变成‘AOT+Interpreter’ 混合runtime,进而原生支持动态加载assembly,使得基于il2cpp backend打包的游戏不仅能在Android平台,也能在IOS、Consoles等限制了JIT的平台上高效地以AOT+interpreter混合模式执行。从底层彻底支持了热更新。

支持Unity使用版本:推荐版本2020.3.33

unity linux热更新 unity热更新方案_游戏引擎

 自动安装huatuo

unity linux热更新 unity热更新方案_unity_02

 

unity linux热更新 unity热更新方案_游戏引擎_03

非C盘才能使用插件

编译:

HuaTuo=》Compile All=》Win64

打包:

Build  Bundle=》Win64

项目发布Build=> 出现错误:

Win32Exception: ApplicationName='D:\UnityFile\My project (10)\unity_il2cpp_with_huatuo\project_il2cpp\il2cpp\build/deploy/netcoreapp3.1/UnityLinker.exe', CommandLine='@"D:/UnityFile/My project (10)/Temp/StagingArea/Data/Managed/response.rsp"', CurrentDirectory='D:\UnityFile\My project (10)\Temp\StagingArea\Data\Managed', Native error= 系统找不到指定的文件。

unity linux热更新 unity热更新方案_unity linux热更新_04

尝试解决:添加C++游戏开发相关      

unity linux热更新 unity热更新方案_svn_05

最终:

问了一下官方群,好多小伙伴也遇到了同样的问题

unity linux热更新 unity热更新方案_github_06

unity linux热更新 unity热更新方案_svn_07

unity linux热更新 unity热更新方案_github_08

 

unity linux热更新 unity热更新方案_unity_09

 

 尝试解决:改为手动安装

unity linux热更新 unity热更新方案_svn_10

 

unity linux热更新 unity热更新方案_svn_11

unity linux热更新 unity热更新方案_unity_12

清除自动安装:

unity linux热更新 unity热更新方案_github_13

 

unity linux热更新 unity热更新方案_游戏引擎_14

 

 下载

huatuo :https://github.com/focus-creative-games/huatuo

il2cpp_huatuo:https://github.com/pirunxi/il2cpp_huatuo

 案例:https://github.com/focus-creative-games/huatuo_trial

2020.3.3版本下载   使用github桌面工具下载

unity linux热更新 unity热更新方案_unity linux热更新_15

 

1、将huatuo文件夹拷贝进=》libil2cpp目录下,复制libil2cpp

unity linux热更新 unity热更新方案_unity_16

 2、将Unity安装路径Editor\Data\il2cpp的libil2cpp 改为libil2cpp_original_unity,

将复制的libil2cpp 粘贴

unity linux热更新 unity热更新方案_游戏引擎_17

 还是不行:

unity linux热更新 unity热更新方案_游戏引擎_18

 尝试解决:使用svn回退到前版本

svn下载huatuo仓库,发现项目结构不同:

unity linux热更新 unity热更新方案_unity_19

 

trunk:是用来做主方向开发的一直向前进行,一个新模块的开发,这个时候就放在trunk,当模块开发完成后,需要修改,就用branch。  

branch:是用来做并行开发的,这里的并行是指和trunk进行比较。  

tag:是用来做一个milestone(里程碑)的,不管是不是发布版本,但都是一个可用的版本,不需要修改如果要修改就要选一个tag进行branche开发。  

unity linux热更新 unity热更新方案_github_20

svn一直更新版本拉取不了,结果还是不行, 只能坐等大佬更新。。。。

更新内容:

unity linux热更新 unity热更新方案_游戏引擎_21

 误会了,原来是要更新案例项目

最新工作流更新,So最终操作如下:

1、Unity的il2cpp保持原样,有修改的改回来,不需要做任何修改粘贴复制

2、从github拉取最新版实例项目:

huatuo_trial

然后打开项目出现提示:

unity linux热更新 unity热更新方案_游戏引擎_22

 打开

unity linux热更新 unity热更新方案_游戏引擎_23

 打开readme:

unity linux热更新 unity热更新方案_svn_24

安装对应顺序执行,建议运行sh,bat运行出错

unity linux热更新 unity热更新方案_svn_25

 修复了,但我这边没测试过

unity linux热更新 unity热更新方案_unity_26

 

路径的书写要跟着格式,另外Unity的版本注意Unity版本号

unity linux热更新 unity热更新方案_unity linux热更新_27

 

至此,huatuo热更设置完成!