我是从2020年6月份开始设计这套框架的,最初是使用Lua热更新的,后来接触到Hybrid热更之后,又修改为Hybrid热更,目前已经更新了三年多了。在这三年内修改了很多bug和新增了很多实用工具。前几天决定把这套框架做一下记录,从最开始设计,到现在能正常使用的全部过程,当然,具体顺序肯定不会很准确,但还是会从如何使用,为什么这样设计详细说明的。
我已经用这套框架开始开发游戏了,在开发的过程中,也发现很多bug,还有考虑不周的地方,也会随时更新框架。后续再写框架设计过程中,也会持续更新。等完整开发完游戏,可能这套框架也就稳定了。目前这套框架算是初始稳定版本,如果有人需要使用这个框架,请先告知。遇到问题随时给我反馈,我会及时修复。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
框架在GitHub上是开源的,如果觉得不错,值得打赏的,请通过本博客顶部捐助本站页面进行捐助,您所有的捐助,都将作为本博客网站的建设和框架开发的动力,感谢支持。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
下面我就先简单介绍一下框架的使用和大概的设计思路。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
一、框架设计文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
1、框架主体是热更新框架,使用的是Hybrid热更新,这种热更新方式是目前效率和性能最优的选择。框架是分模块开发的,具体怎么分模块,在具体开发中可自行划分。我大致的思路是一个功能分为一个模块,每个模块分为两个脚本,一个是负责逻辑数据处理的Logic类,和挂载在GameObject上负责数据显示和界面逻辑的View类。这样多人开发的时候就会避免冲突。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
2、框架的主入口是App类,这个是挂在不销毁GameObject上的,然后通过Root类进行初始化等一些列操作,其中包括模块Logic的初始化等Logic初始化的时候加载对应View。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
3、框架内提供了Manager管理类,主要是一些通用的功能。如:网络(Http,Socket等)、平台、数据表、计时任务、UI管理、AB包、资源加载、视频、音频等。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
4,框架还提供了一些工具类,这些工具类不依赖其他,都可单独使用。其中包括,事件处理、文件工具、日志系统、单例、UGUI拓展,拓展方法、UnityWebRequest等文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
5、其中还包括很多编辑器工具,这些编辑器工具我是用的Unity最新的UIToolkit写的(还别说,这个写编辑器工具还是很不错的)。我将这些工具整合到一个Window下了,大大方便了使用,还有一些是自动化的东西。其中有:打包app工具、打AB包工具、批量修改预制体字体工具、拷贝脚本模板工具、查找重名文件工具、设置Logic脚本配置工具,设置数据表配置工具、配置表转C#类工具、自动生成资源路径工具、拷贝预制体资源引用工具、生成脚本模板命名空间修改工具、打开Unity路径工具、运行前自动打开启动场景工具等。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
上面是粗略的介绍了框架内的一些功能,之后的文章会围绕这些做详细介绍。文章源自大腿Plus-https://www.zhaoshijun.com/archives/1833
二、框架使用
1、首先在Resources文件夹下有一个AppConfig.asset文件,可以设置一些属性,也可以通过打包App工具进行设置和保存。
2、有些文件夹结构和命名都有一些限制,这个后面也会详细介绍。
3、所有的模块脚本都要在AppScriptConfig.asset文件内配置,可通过设置Logic脚本配置工具进行配置。
4、想要设置配置表可在项目根目录下的Data/excel文件夹下的excel文件内进行配置,让然后通过工具转成数据类和对应数据文件。
5、华佗热更需要进行一些设置,具体可以看Hybrid官网介绍
以上是框架的简单介绍。后续在对框架做详细介绍。
项目GitHub仓库地址:https://github.com/Josh-Jun/UnityAppFramework.git
项目Gitee仓库地址:https://gitee.com/shijun_z/UnityAppFramework.git
。
评论