【Unity开发】热更新学习——HybridCLR框架

一、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}");
        }
    }
相关推荐
小弥儿2 小时前
GitHub今日热榜 | 2026-10-12:pytorch 上升四位
人工智能·pytorch·学习·开源·github
AOI小白新手上路3 小时前
DeepLens 的课程学习自动设计与同源仿真论文综述
学习
xcLeigh3 小时前
Unity基础:Instantiate实例化——在运行时动态创建游戏物体
游戏·unity·游戏引擎·教程·instantiate
老王爱玩车3 小时前
预处理详解
c语言·开发语言·学习
Awh-4 小时前
ARM 裸机开发 DAY9 学习笔记
arm开发·笔记·学习
CAIE研习社4 小时前
CAIE认证与在线AI课程证书对比:完成条件、考试评价、学习支持怎么区分
学习
CCIE-Yasuo4 小时前
个人电脑搭建AI-Qwen3-8B-学习记录
人工智能·python·学习
想做小南娘,发现自己是女生喵4 小时前
第三周学习文档 Linux C 多进程与多线程
linux·c语言·学习
奕鼎竜瑆5 小时前
无监督学习:聚类与降维
学习·数据挖掘·聚类
听风若依6 小时前
函数栈帧的创建与销毁-重置版
c语言·学习