【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}");
        }
    }
相关推荐
DaLiangChen7 小时前
Unity 精准 Mesh 点击检测:穿透遮挡 + 单击双击识别
unity·游戏引擎
sinat_255487818 小时前
读者、作家 Java集合学习笔记
java·笔记·学习
Edward111111119 小时前
3.18异常学习
学习
正经人_x10 小时前
学习日记34:UNETR
学习
科技林总10 小时前
【系统分析师】12.3 软件架构描述与表示
学习
wincheshe10 小时前
AI Agent 开发学习 --- 框架开发实践(三)
人工智能·学习
迪普阳光开朗很健康10 小时前
Unity中new() 和实例化有什么区别?
unity·游戏引擎
mxwin10 小时前
Unity Shader 极坐标特效 从数学原理到实战案例
unity·游戏引擎·shader·uv
2501_9181269112 小时前
学习所有6502写游戏存档的语句
汇编·嵌入式硬件·学习·游戏·个人开发
星雨流星天的笔记本12 小时前
2.用洗洁精洗过的三口烧瓶的处理方法
学习