数据人与超自然意识 发表于 2024-9-28 20:52:29

[使用如今最新版]HybridCLR6.9.0+YooAsset2.2.4实现纯C# Unity热更新方案 (

1.前言


[*]什么是热更新
游戏或者软件更新时,无需重新下载客户端进行安装,而是在应用程序启动的情况下,在内部进行资源或者代码更新
[*]Unity如今常用热更新解决方案
HybridCLR,Xlua,ILRuntime等
[*]Unity如今常用资源管理解决方案
AssetBundles,Addressable,YooAsset等
在这里我们接纳HybridCLR+YooAsset的方案进行热更新
(不建议Addressable方案资源管理,个人感觉坑有亿点多)
2.创建开辟情况

这里使用VS2022,Unity编辑器版本为2022.3.20f1cf1
3.安装HybridCLR


[*]首先需要在Unity Hub中为编辑器安装Windows Build Support (IL2CPP)
https://img2024.cnblogs.com/blog/3469429/202409/3469429-20240928163042603-1453209962.png
https://img2024.cnblogs.com/blog/3469429/202409/3469429-20240928163005551-1363246485.png
[*]在主菜单中点击 窗口/包管理器/+/添加来自 git URL 的包
填https://gitee.com/focus-creative-games/hybridclr_unity.git
https://img2024.cnblogs.com/blog/3469429/202409/3469429-20240928162823043-1536578627.png
https://img2024.cnblogs.com/blog/3469429/202409/3469429-20240928162756517-1794118688.png
[*]在Assets目录下创建"Scenes","Scripts","YooAssset"三个文件夹
https://img2024.cnblogs.com/blog/3469429/202409/3469429-20240928163321419-1772384472.png
[*]在Scenes文件夹创建Main屏幕(右键/创建/场景),双击打开
[*]在场景里创建一个空对象
https://img2024.cnblogs.com/blog/3469429/202409/3469429-20240928163643856-27924715.png
[*]然后在Scripts文件夹创建文件ConsoleToScreen.cs(用途是输出日志)
using System.Collections.Generic;using UnityEngine;public class ConsoleToScreen : MonoBehaviour{    const int maxLines = 50;    const int maxLineLength = 120;    private string _logStr = "";    private readonly List _lines = new();    public int fontSize = 15;    void OnEnable() { Application.logMessageReceived += Log; }    void OnDisable() { Application.logMessageReceived -= Log; }    public void Log(string logString, string stackTrace, LogType type)    {      foreach (var line in logString.Split('\n'))      {            if (line.Length
页: [1]
查看完整版本: [使用如今最新版]HybridCLR6.9.0+YooAsset2.2.4实现纯C# Unity热更新方案 (