hj1990524tsb 发表于 2023-3-22 12:36

Unity ILRuntime 热更框架如何启动

上一节我们分析了ILRuntime基本开发原则与如何做到接口绑定,能使得逻辑热更项目直接调用Unity的引擎API,以及实现这个的技术原理,这一节我们来分析一个ILRuntime热更的游戏项目我们的启动流程是怎么样的?搞懂游戏项目的启动流程,对我们整个项目非常的重要。整个ILRuntime游戏项目的启动过程我们大致分成几个阶段:


对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。
启动与初始化Unity C#框架, 并实例化 ILRuntime 虚拟机
与大多数的Unity框架启动一样,我们从一个节点+启动脚本开始,我这里是用GameApp节点+GameLanch.cs开始,进入游戏的启动流程,并且这个节点全程不会删除掉,框架的单例组件实例都挂在这个GameApp这个节点上。如图1.3-1:










图1.3-2 Awake函数做的主要事情








Unity C#框架启动完成后,底层我们就准备好了,接下来就是检查版本做热更新,这个我们可以通过服务器上部署热更资源包: 包括了游戏资源包+游戏逻辑热更.dll+版本号+MD5的资源下载列表。我们先读取本地的版本号,在获取服务器上的版本号,比较版本号是否一致,如果一致,直接返回继续进入游戏流程,如果不一致比较本地的






图1.3-4 加载.dll的二进制数据






图1.3-5 LoadHotFixAssembly具体实现
自此,第二步就顺利完成了,然后调用ILRuntimeWrapper.EnterGame进入游戏。
引入Unity的生命周期入口到逻辑热更项目入口






图1.3-6 逻辑热更项目main.cs中几个入口函数






图1.3-7 ILRuntime解释器掉热更项目入口


今天的分享就到这里了, 进入学习小组,可以获取我们的ILRuntime热更教程源码, 对着源码看更酸爽。
页: [1]
查看完整版本: Unity ILRuntime 热更框架如何启动