Unity3D:框架设计之Launcher启动场景及HybridCLR热更新

接下来,就要正式进入框架的完整流程介绍了。先不急着去讲具体的实现,先说一下完整的热更及启动流程。

首先,先来了解一下热更的整个流程,下面是流程图。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

Unity3D:框架设计之Launcher启动场景及HybridCLR热更新-图片1文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

一、左半部分是脚本热更,也就是启动场景启动的时候用Hybrid热更去下载和加载dll实现脚本热更,具体的实现方法可以去Hybrid官方文档去看实现方法。这里要注意的是,用这种方法更新,之后的场景和资源都需要通过ab包加载,否则应用运行时会提示missing;文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

二、右半部分是资源热更,这个App场景是要打进脚本热更的ab包内的,也就是上面说的,要把脚本热更所在的场景和资源用ab的方式加载进来。然后通过热更界面去判断是否更新资源。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

详细的流程就不去说明了,ab资源更新网上也有一大推文章介绍。下面就介绍一下启动之后热更完成后都做了什么。在讲之前,先放一张程序脚本执行的流程图,然后按照流程图详细说明一下执行流程。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

Unity3D:框架设计之Launcher启动场景及HybridCLR热更新-图片2文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

一、App脚本(程序入口脚本),这个脚本只负责Root脚本初始化等工作。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

1、Init(启动应用初始化方法):做一些初始化的工作。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

2、OnApplicationPause(应用是否暂停方法):当应用暂停或者移动应用退出后台时执行文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

3、OnApplicationFocus(应用是否失去焦点方法):当应用失去焦点时执行,主要在PC端,当鼠标点击其他应用或者桌面时,应用失去焦点或重新获得焦点时。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1845

4、OnApplicationQuit(应用退出方法):当应用退出或时执行。当有线程操作时就需要在退出时清除线程,不然可能线程还在占用cpu和内存。

二、Root脚本(程序入口具体实现脚本),这个脚本时具体实现ILogic接口的脚本。

1、Init方法,初始化方法,初始化一些程序设置。然后,根据AppScriptConfig配置表,初始化所有Logic脚本。

2、LoadScene方法,加载场景方法,必须要通过这个加载场景,否则,加载场景时会执行ILogic里面的Begin和End接口。

3、GetLogicScript方法,可以获取到对应Logic脚本,跨功能去调用方法。

4、AppPause方法,实现应用暂停或者移动应用退出后台时会执行ILogic里面AppPause接口。

5、AppFocus方法,实现应用暂停或者移动应用退出后台时会执行ILogic里面AppFocus接口。

6、AppQuit方法,实现应用暂停或者移动应用退出后台时会执行ILogic里面AppQuit接口。

三、***Logic脚本(功能模块Logic脚本)

这个脚本主要是功能模块处理逻辑和数据的,功能模块的逻辑和数据处理都是在这个脚本里实现的,这个脚本里会去加载对应的View的脚本和UI对象。(脚本可以通过自定义模板,右键自动创建。后面介绍编辑器工具的时候详细说)

四、***View脚本(功能模块View脚本)

View主要是处理UI和3D对象的逻辑和数据显示更新的脚本,这个是要挂在对应UI或者3D对象上的,当然不用手动去挂,都是自动实现的。主要功能是查找对象,按钮点击等事件添加,和UI逻辑,显示更新数据等。

至此,框架的大体流程就介绍完了,之后就会针对一些具体功能做详细介绍。

项目GitHub仓库地址:https://github.com/Josh-Jun/UnityAppFramework.git

项目Gitee仓库地址:https://gitee.com/shijun_z/UnityAppFramework.git

我的微信
微信扫一扫
weinxin
shijun_z
我的QQ
QQ扫一扫
weinxin
846207670
 最后更新:2023-12-6
大腿Plus
  • 本文由 大腿Plus 发表于 2023年8月18日 16:40:22
  • 转载请务必保留本文链接:https://www.zhaoshijun.com/archives/1845

发表评论