HybridCLR热更方案 学习笔记

HybridCLR热更方案 学习笔记

跟着官方步骤走就行

https://hybridclr.doc.code-philosophy.com/docs/intro

https://github.com/focus-creative-games/hybridclr_unity.git

focus-creative-games/hybridclr_unity

注:

1.以下为 截止2023-08-07前的整理结果

2.社区版不支持增量式GC

3.不支持在热更新脚本中定义extern函数,可以在热更中调用

4.[RequireComponent(typeof(AAA)) ] 要求AAA必须已经在别处资源中实例化或者AddComponent过,否则Unity无法识别AAA为脚本而忽略处理

5.官方仅支持LTS版本,部分接近的其他小版本有可能正常工作, 支持2019.4.x、2020.3.x、2021.3.x、2022.3.x全系列LTS版本

测试环境:

1.Unity 2021.3.f1c1 (安装Windows Build Support(IL2CPP)模块)

2.Rider 2023.1.1

3.VS 模块安装:使用Unity的游戏开发使用c++的游戏开发 组件

4.git (拉插件本体用的com.code-philosophy.hybridclr,有插件本体就用不到了)

安装与配置

  1. 安装 com.code-philosophy.hybridclr 包 unity ⇒packageManager ⇒AddPackage from git url ⇒‣ 或者克隆下来文件夹重命名为 com.code-philosophy.hybridclr,拖进package文件夹

  2. 打开菜单HybridCLR/Installer..., 点击安装按钮进行安装。 耐心等待30s左右,安装完成后会在最后打印 安装成功日志。在这里插入图片描述

  3. 创建热跟程序集并配置
    在这里插入图片描述

  4. 添加热更资源、热更代码

    注意:
    1.热更新脚本挂载到Resources等随主包的资源上,会发生scripting missing的错误
    2.挂载热更新脚本的资源(场景或prefab)必须打包成ab
    3.可调用AddComponent 动态挂载热更新脚本
    4.热更代码加载完成后、执行任何热更新代码前 使用com.code-philosophy.hybridclr包中的
       HybridCLR.RuntimeApi.LoadMetadataForAOTAssembly函数为AOT泛型补充元数据。
    
  5. 打包流程

    1. 打首包:
      1. 运行菜单 HybridCLR/Generate/All 进行必要的生成操作。这一步不可遗漏!!!
      2. {proj}/HybridCLRData/HotUpdateDlls/StandaloneWindows64(MacOS下为StandaloneMacXxx)目录下的 热更程序集.dll 复制到Assets/StreamingAssets/热更程序集.dll.bytes注意,要加.bytes后缀!!!
      3. 打开Build Settings对话框,点击Build And Run,打包并且运行热更新示例工程。
    2. 补充包:
      1. 修改热更代码、资源后
      2. 运行菜单 HybridCLR/Generate/All 进行必要的生成操作。
      3. {proj}/HybridCLRData/HotUpdateDlls/StandaloneWindows64(MacOS下为StandaloneMacXxx)目录下的 热更程序集.dll 复制到 打包路径/StreamingAssets/热更程序集.dll.bytes
      4. 运行加载即可完成热更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布尔方程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值