吕一 发表于 2024-9-28 21:02:11

[使用目前最新版]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)


[*]在主菜单中点击 窗口/包管理器/+/添加来自 git URL 的包
填https://gitee.com/focus-creative-games/hybridclr_unity.git


[*]在Assets目录下创建"Scenes","Scripts","YooAssset"三个文件夹

[*]在Scenes文件夹创建Main屏幕(右键/创建/场景),双击打开
[*]在场景里创建一个空对象

[*]然后在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热更新方案 (