一、HybridCLR框架介绍
官方手册:https://www.hybridclr.cn/docs/intro
总结:HybridCLR可以将热更代码编译成.dll,并且会自动补充元数据。可以通过该框架去更新原本的代码内容。
二、热更流程

三、注意事项
1、使用热更新代码中没有定义,并且AOT代码中没有实例化过的某个泛型类或者函数时,需要补充元数据dll
不使用会出现以下报错:

2、补充元数据方法
(1)生成补充元数据
使用HybridCLR/Generate/AotDlls命令生成AOT dll,存放路径为{project}/HybridCLRData/AssembliesPostIl2CppStrip/{target}。
(2)执行补充元数据
csharp
private static void LoadMetadataForAOTAssemblies()
{
List<string> aotDllList = new List<string>
{
"mscorlib.dll",
"System.dll",
"System.Core.dll", // 如果使用了Linq,需要这个
// "Newtonsoft.Json.dll",
// "protobuf-net.dll",
};
foreach (var aotDllName in aotDllList)
{
byte[] dllBytes = File.ReadAllBytes($"{Application.streamingAssetsPath}/{aotDllName}.bytes");
int err = HybridCLR.RuntimeApi.LoadMetadataForAOTAssembly(dllBytes, HomologousImageMode.SuperSet);
Debug.Log($"LoadMetadataForAOTAssembly:{aotDllName}. ret:{err}");
}
}