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

接下来,就要正式进入框架的完整流程介绍了。先不急着去讲具体的实现,先说一下完整的热更及启动流程。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

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

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

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

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

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

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

一、App脚本(程序入口脚本),这个脚本只负责实现ILogic里面的接口。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

1、Begin(进入对应场景初始化方法):根据AppScriptConfig配置表在对应的场景进入时执行,做一些初始化的工作。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

2、End(退出对应场景方法):根据AppScriptConfig配置表,在退出对应场景时执行。可执行一些回收操作,或者结束操作。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

3、AppPause(应用是否暂停方法):当应用暂停或者移动应用退出后台时执行,如果有线程操作或者在退到后台时,需要做一些操作,可以在这个方法里执行相应操作。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

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

5、AppQuit(应用退出方法):当应用退出或时执行。当有线程操作时就需要在退出时清除线程,不然可能线程还在占用cpu和内存。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

二、Root脚本(程序入口具体实现脚本),这个脚本时具体实现ILogic接口的脚本。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

1、Init方法,初始化方法,初始化一些程序设置。然后,根据AppScriptConfig配置表,初始化所有Logic脚本。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

2、LoadScene方法,加载场景方法,必须要通过这个加载场景,否则,加载场景时不会执行ILogic里面的Begin和End接口。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

3、GetLogicScript方法,可以获取到对应Logic脚本,跨功能去调用方法。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

三、***Logic脚本(功能模块Logic脚本)文章源自大腿Plus-https://www.shijunzh.com/archives/1845

这个脚本主要是功能模块处理逻辑和数据的,功能模块的逻辑和数据处理都是在这个脚本里实现的,这个脚本里会去加载对应的View的脚本和UI对象。(脚本可以通过自定义模板,右键自动创建。后面介绍编辑器工具的时候详细说)文章源自大腿Plus-https://www.shijunzh.com/archives/1845

四、***View脚本(功能模块View脚本)文章源自大腿Plus-https://www.shijunzh.com/archives/1845

View主要是处理UI和3D对象的逻辑和数据显示更新的脚本,这个是要挂在对应UI或者3D对象上的,当然不用手动去挂,都是自动实现的。主要功能是查找对象,按钮点击等事件添加,和UI逻辑,显示更新数据等。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

至此,框架的大体流程就介绍完了,之后就会针对一些具体功能做详细介绍。文章源自大腿Plus-https://www.shijunzh.com/archives/1845

项目GitHub仓库地址:https://github.com/Josh-Jun/MyUnityFramework.git文章源自大腿Plus-https://www.shijunzh.com/archives/1845

大腿Plus
  • 本文由 发表于 2023年8月18日16:40:22
  • 转载请务必保留本文链接:https://www.shijunzh.com/archives/1845

发表评论