【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}");
        }
    }
相关推荐
龙文浩_4 小时前
Attention Mechanism: From Theory to Code
人工智能·深度学习·神经网络·学习·自然语言处理
aqiu~6 小时前
VSCode编辑器用于Unity项目
vscode·unity
爱上好庆祝6 小时前
svg图片
前端·css·学习·html·css3
嵌入式小企鹅6 小时前
蓝牙学习系列(八):BLE L2CAP 协议详解
网络·学习·蓝牙·ble·协议栈·l2cap
jiayong237 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习
格鸰爱童话8 小时前
向AI学习项目技能(五)
java·学习
技术人生黄勇8 小时前
拆解 Hermes Agent:开源 Agent 里唯一的闭环学习系统
学习
凉、介8 小时前
别再把 PCIe 的 inbound/outbound、iATU 和 eDMA 混为一谈
linux·笔记·学习·嵌入式·pcie
speop9 小时前
TASK01 | Reasoning Kindom
学习
2301_8227032010 小时前
鸿蒙flutter三方库实战——教育与学习平台:Flutter Markdown
学习·算法·flutter·华为·harmonyos·鸿蒙