【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}");
        }
    }
相关推荐
Chunyyyen2 小时前
【第二十七周】OCR学习02
学习·ocr
IMPYLH2 小时前
Lua 的 OS(操作系统) 模块
开发语言·笔记·后端·游戏引擎·lua
free-elcmacom2 小时前
机器学习高阶教程<11>当数据开始“折叠”:流形学习与深度神经网络如何发现世界的隐藏维度
人工智能·python·神经网络·学习·算法·机器学习·dnn
暗然而日章2 小时前
C++基础:Stanford CS106L学习笔记 12 运算符重载
c++·笔记·学习
红宝村村长2 小时前
【学习笔记】全解深度学习
笔记·深度学习·学习
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [fs]exec
linux·笔记·学习
Master_oid2 小时前
机器学习26:增强式学习(Deep Reinforcement Learn)①
人工智能·学习·机器学习
龚子亦2 小时前
【GameFramework框架学习】事件系统的使用
学习·游戏开发·游戏框架
deng-c-f2 小时前
Linux C/C++ 学习日记(58):手写检测内存泄露的组件
学习