HybridCLR 热更新配置

这篇具有很好参考价值的文章主要介绍了HybridCLR 热更新配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开始前准备

  • unity、vs
  • hybridclr
  • hybridclr_trial
  • hybridclr_unity
  • YooAsset

配置 HybridCLR

1. 新建一个unity项目。

2. 安装 hybridclr_unity

  • 点击菜单 Windows/Package Manager 弹出窗口
  • 点击左上角的加号,选择Add package from git url...
https://gitee.com/focus-creative-games/hybridclr_unity
  • 输入上方url,点Add或者按回车键,等待加载完成。
    HybridCLR 热更新配置

因为网络问题无法加载的
用将 hybridclr_unity 库clone或者下载到本地,选择Add package from disk...,找到库中的 package.json,选中打开即可。

3. 配置 PlayerSettings

  • 关闭增量式GC(Use Incremental GC) 选项。因为目前不支持增量式GC。WebGL平台忽略此选项。
  • Scripting Backend切换为il2cpp。WebGL平台不用设置此选项。
  • Api Compatability Level切换为.Net 4.Net Framework(打主包时可以使用.net standard,但使用脚本Compile热更新dll时必须切换到.Net 4.Net Framework)。如果你一定要热更新部分也使用.net standard也可以,官方说是找他们商业化服务。

注意:不管构建那个平台,都要设置。

4. 安装 HybridCLR

  • 点击菜单HybridCLR/Installer…,弹出安装界面。点击安装,等待安装完成。

5. 导入2个工具库

  • 下载官方示例 hybridclr_trial
  • Packagescom.gwiazdorrr.betterstreamingassetsUnity-Logs-Viewer文件夹,复制到新项目的 Packages中。
    HybridCLR 热更新配置

com.gwiazdorrr.betterstreamingassets:加载插件
Unity-Logs-Viewer:日志插件

  • Assets 下的 EditorHotUpdateImagesMainPrefabsScenes文件夹和 link.xml 文件,复制到新项目的 Assets 中。
  • 等待编译完成。

这里可以对项目整理一下。
删除多余的场景:SampleScene
删除多余的节点:GameObject、ScreenLog
删除Reporter节点,重新创建一个,防止后边报错。

6. 创建 Hotfix.dll

  • 选中 HotUpdate 文件夹,右键,选择Creator/Assembly Definition,创建 Hotfix.dll 文件。
  • 选中 Hotfix.dll 文件,在Inspector面板上勾选Allow 'unsafe' Code选项。
  • Use GUIDs下添加MainHybridCLR.RuntimeBetterStreamingAssets引用,然后点Apply保存。
    HybridCLR 热更新配置

7. 配置 HybridCLR

  • 点击菜单HybridCLR/Settings,弹出设置界面。
  • 找到热更新Assembly Definitions(Hot Update Assembly Definitions),将 Hotfix.dll 文件添加进去。
  • 找到补充元数据AOT dlls(Patch AOT Assemblies),将mscorlibSystemSystem.Core名字添加进去。
    HybridCLR 热更新配置

8. 安装 YooAsset

  • 打开管理界面 Edit/Project Settings/Package Manager,输入以下内容,点Save保存。

Name: package.openupm.cn
URL: https://package.openupm.cn
Scope(s): com.tuyoogame.yooasset

HybridCLR 热更新配置

  • 打开管理界面 Windows/Package Manager,点击加号右边的按钮,选择 My Registries 下的 YooAsset,点击Install,等待安装完成。
    HybridCLR 热更新配置

  • 分别在 Hotfix.dllMain.dll 文件中添加 YooAsset 的引用。

YooAsset:这是一个资源打包管理的插件,详细使用出门右转(传送门)。

9. 修改 LoadDll.cs

  • 修改后的 LoadDll.cs(传送门)
  • 复制全部代码到项目中的 LoadDll.cs注意:项目中 LoadDll.cs 代码全被覆盖,不要了。
  • 打开 LoadDll.cs 脚本,将DefaultHostServerFallbackHostServer的值修改为资源服务器上AB包的地址。
  • 打开 Main 场景,选择 LoadDll 节点,在Inspector面板上修改Play ModeHost Play Mode
    HybridCLR 热更新配置

Play Mode:资源运行模式
EditorSimulateMode:编辑器模式
OfflinePlayMode:离线模式
HostPlayMode:在线模式

10. 配置 YooAsset

YooAsset 的使用不多讲,这里只是简单使用。配置前,先在 Assets 下新建文件夹 DllBytes

  • 点击菜单 YooAsset/AssetBundle Collector,打开 资源包收集工具 弹窗。
  • 勾选前三个选项
  • 添加 Packages
  • 添加 Groups
    Group Name:ABGroup
    Group Desc:AB包资源
    [+],将 Prefabs 文件夹拖进去
  • 添加 Groups
    Group Name:DllGroup
    Group Desc:Dll文件
    [+],将 DllBytes 文件夹拖进去,改第三个选为打包原生文件
  • 点右上角Save保存
    HybridCLR 热更新配置

11. Generate/All 和 Build

  1. 点击菜单 HybridCLR/Generate/All,等待编译生成。
  2. BuildAssetsCommand.cs 脚本 20行加代码
public static string DllBytesOutputDir => Application.dataPath + "/DllBytes";
  1. BuildAssetsCommand.cs 脚本 72行改代码
[MenuItem("HybridCLR/Build/BuildAssetsAndCopyToStreamingAssets")]
// 改为
[MenuItem("HybridCLR/Build/BuildDllsAndCopyDllBytesToOutputDir")]
  1. BuildAssetsCommand.cs 脚本 76行注释代码
//BuildAssetBundleByTarget(target); //因为使用了YooAsset,所以Build AssetBundle不需要在这里进行。
  1. BuildAssetsCommand.cs 脚本 83行注释代码
//CopyAssetBundlesToStreamingAssets(target); //前边没了Build,这里就没有要复制的对象了。
  1. BuildAssetsCommand.cs 脚本 99行改代码
string aotAssembliesDstDir = Application.streamingAssetsPath;
// 改为
string aotAssembliesDstDir = DllBytesOutputDir;
  1. BuildAssetsCommand.cs 脚本 120行改代码
string hotfixAssembliesDstDir = Application.streamingAssetsPath;
// 改为
string hotfixAssembliesDstDir = DllBytesOutputDir;
  1. BuildPlayerCommand.cs 脚本 24行注释代码
//[MenuItem("HybridCLR/Build/Win64")] //经上面改动这里可能存在问题。
  1. HotUpdateMain.cs 脚本 16行注释代码
//gameObject.AddComponent<CreateByCode>(); //等下做热更新测试会取消注释。
  1. 点击菜单 HybridCLR/Build/BuildDllsAndCopyDllBytesToOutputDir,等待编译生成。
  2. 点击菜单 YooAsset/AssetBundle Builder,打开 资源包构建工具 弹窗。
    Build Mode第一次必要时,选 Force Rebuild,其他时候选 Incremental Build,设置版本号,点 Save构建,完成时会弹出打包输出文件夹。

Force Rebuild —— 强制重新构建
Incremental Build —— 增量构建
Dry Run Build —— 演练构建
Simulate Build —— 模拟构建

12. 验证是否成功

  • 将打包出来的文件放到资源服务器上,直接运行unity,在Console中会有下载相关日志。
  • 打PC包出来,运行,使用鼠标在屏幕上画圈查看日志,也会有下载相关日志。

以上两种方式运行后,会看到最后一条日志有以下字样:
=======看到此条日志代表你成功运行了示例项目的热更新代码=======

  • HotUpdatePrefab 预制件上,随便做出点修改,例如:创建 ImageText
  • HotUpdateMain.cs 脚本 16行,取消注释代码
  • HotUpdateMain.cs 脚本 Start 函数最后一行,加上自定义的日志(随便啥都行,只要不报错)。

这些操作是来模拟平时开发做出的修改。

  • 点击菜单 HybridCLR/Build/BuildDllsAndCopyDllBytesToOutputDir,等待编译生成。
  • 点击菜单 YooAsset/AssetBundle Builder,打开 资源包构建工具 弹窗,Build Mode选择 Incremental Build,设置版本号,点击 构建
  • 将新打包出来的文件放到资源服务器上,运行PC包测试,在日志上你会看到 CreateByCode.cs 中的输出日志、你自定义的输出日志,还有你对 HotUpdatePrefab 预制件的修改。
  • 此时,以上操作没有问题,就说明 HybridCLR 热更新 配置好了。

结束

以上就是配置 HybridCLR 热更新 的记录
如有侵权,联系删除
如有错误、不当之处,敬请指导
如在构建AssetBundle和dll文件时有更好的方式,可以联系,一起探讨学习文章来源地址https://www.toymoban.com/news/detail-497590.html

到了这里,关于HybridCLR 热更新配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 热更新 之 huatuo(HybridCLR)

    一句话说说huatuo和Hybridclr: huatuo是途游开源的,之前hybird的作者在途游,后来开源华佗,后来被途游收回,就写了hybirdCLR;  阶段1:C#发展,--- windows系列平台  ----  微软标准 .net的标准开发出来;                 只需要开发出来符合.net字节码的标准代码,就可以让代码在

    2024年02月10日
    浏览(36)
  • Unity 热更新 HybridCLR 对接到项目中

    Unity版本 2021.3.6f1 HybridCLR版本 2.2.0 1.1要注意两点: 1.Unity 要安装了Windows-IL2CPP 环境的,这个Unity官网有提供,根据自己Unity版本下载对应的环境即可。 2.il2cpp需要c++的环境库,一般情况不是C开发的,很容易缺失c++的开发环境,因此在打包时会出现 error: could not set up a toolchain

    2024年02月12日
    浏览(43)
  • 【Unity】热更新HybridCLR学习与实战(一)

    从事unity开发以来一直未真正系统的学习过热更新,现在业务上有需要,借此机会来深入学习一下,调研了几种现有比较火的热更新框架,对比了一下优劣,最终决定使用HybridCLR来做热更新,最终目的是要加入到我们已有的项目中,所以肯定要全面实现商业化,因此有同等需

    2024年02月03日
    浏览(42)
  • HybridCLR 热更新配置

    unity、vs hybridclr hybridclr_trial hybridclr_unity YooAsset 点击菜单 Windows/Package Manager 弹出窗口 点击左上角的加号,选择 Add package from git url... 输入上方url,点 Add 或者按 回车 键,等待加载完成。 因为网络问题无法加载的 用将 hybridclr_unity 库clone或者下载到本地,选择 Add package from di

    2024年02月10日
    浏览(31)
  • Unity最新热更新框架 hybridclr_addressable

    GitHub:YMoonRiver/hybridclr_addressable: 开箱即用的商业游戏框架,集成了主流的开发工具。将主流的GameFramework修改,支持Addressable和AssetBundle,已完善打包工具和流程。 (github.com) # 新增GameFramework Addressables 开箱即用 # 新增循环列表 ### UnityGameFramework   **此框架参考:**    `GameFramework

    2024年02月03日
    浏览(50)
  • Unity | YooAssetV2.1.0 + HybridCLR热更新

    目录 一、项目更改 二、使用YooAsset热更 1.资源配置 2.资源构建 3.将两个文件夹下的资源上传CDN服务器 4.修改代码 5.运行效果         本文记录利用YooAsset+HybridCLR来进行资源和dll的更新。YooAsset使用的是新版V2.1.0。相比于旧版,dll(原生文件)和资源要建两个package分别来进行bu

    2024年02月19日
    浏览(39)
  • Unity之如何接入HybridCLR(代号wolong,原huatuo)热更新框架

    HybridCLR(代号wolong)是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。 官方提供了完整的教程:HybridCLR快速上手 官方还提供了一个简易的小Demo,演示了如何使用HybridCLR实现热更新。hybridclr_trial 官方文档其实已经非常详细了,我写本文目的主要

    2024年02月12日
    浏览(44)
  • Unity + HybridCLR,近乎完美的新热更方案,从零开始(一)——Hello World

    最近又新接触了一种unity热更的解决方案——HybridCLR,自称是: 特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案 。 接下来我们就来一起学习下。 下面是官方文档的链接,一切以官方为主:HybridCLR HybridCLR扩充了il2cpp的代码,使它由纯AOT runtime变成

    2024年02月07日
    浏览(46)
  • 【Unity3D热更新】Unity3D 零成本、高性能的C#的热更新框架:HybridCLR

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 相信只要做过热更新的小伙伴,都被热更新搞过心态吧。 我有一个小伙伴,本来是面向

    2024年01月16日
    浏览(53)
  • HybridCLR 热更新介绍

    @HybridClr介绍 以下讲简单阐述下个人理解的Hclr的相关知识,以及在使用中遇到的坑点. 为了方便下文的更好的理解,建议大家先简单过一下下文的一些名称和一些简单的知识点: CommonLanguageRuntime ,公共语言运行环境; Ahead Of Time (AOT) ,指运行前编译 - 静态编译环境; Just-in-t

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包