之前 MyFramework 主要是以完整 Unity 工程的形式开源。
这种方式适合看完整工程结构,也方便研究框架源码,但如果只是想把框架接入自己的项目,就不太方便。
因为使用者需要自己判断哪些目录是框架代码,哪些目录是项目代码,还要手动处理启动场景、配置文件、GameEntry、HybridCLR、Obfuz 等内容。
现在这部分已经整理好了。
MyFramework 已经支持通过 Unity Package Manager 以插件形式安装。
项目地址:
https://github.com/ZHOURUIH/MyFramework
一、现在怎么安装
打开 Unity 项目,进入:
Window/Package Manager
点击左上角:
+
Add package from git URL...
输入 Git 地址:
https://github.com/ZHOURUIH/MyFramework.git?path=/Packages/com.zhourui.myframework
国内访问 GitHub 不稳定的话,也可以使用 Gitee 地址:
https://gitee.com/inothingtodo/MyFramework.git?path=/Packages/com.zhourui.myframework
现在直接使用 master 分支,不再使用 release 分支。
二、安装后怎么初始化
插件安装完成后,Unity 菜单栏会出现:
MyFramework/初始化
目前有两个入口:
MyFramework/初始化/初始化框架
MyFramework/初始化/初始化框架+HybridCLR+Obfuz
普通项目使用:
MyFramework/初始化/初始化框架
需要热更新和混淆的项目使用:
MyFramework/初始化/初始化框架+HybridCLR+Obfuz
初始化会自动完成:
复制项目模板文件
生成编辑器配置
生成运行时配置
处理启动场景
挂接 GameEntry
加入 Build Settings
处理必要项目配置
也就是说,现在新建一个空 Unity 项目,安装插件后执行初始化,就可以直接生成基础项目结构。
三、为什么要改成插件安装
以前完整工程结构大致是:
Assets
├── Editor
├── EditorRes
└── Scripts
├── Frame_Base
├── Frame_Game
├── Frame_HotFix
├── Game
└── HotFix
这里面既有框架代码,也有项目代码。
插件化以后,框架代码放到:
Packages/com.zhourui.myframework
项目代码仍然生成到:
Assets
这样框架和项目的边界会更清楚。
四、现在 Package 的结构
现在框架主体结构大致是:
Packages/com.zhourui.myframework
├── Runtime
│ ├── Frame_Base
│ ├── Frame_Game
│ └── Frame_HotFix
├── Editor
│ ├── Editor_Frame
│ └── EditorRes_Frame
├── ProjectTemplate~
├── package.json
├── README.md
└── CHANGELOG.md
其中:
Runtime
放框架运行时代码。
Editor
放框架编辑器工具。
ProjectTemplate~
放项目模板。
ProjectTemplate~ 后面带 ~,Unity 不会直接导入和编译这个目录。
只有执行初始化菜单时,模板文件才会被复制到项目的 Assets 目录中。
五、为什么 Game 和 HotFix 不直接放进 Package
MyFramework 的代码分层是:
Frame_Base 框架基础层
Frame_Game 框架非热更层
Frame_HotFix 框架热更层
Game 项目非热更启动层
HotFix 项目热更业务层
其中:
Frame_Base
Frame_Game
Frame_HotFix
属于框架。
而:
Game
HotFix
属于项目。
所以 Game 和 HotFix 不应该固定在 Package 内部。
现在它们作为模板放在 ProjectTemplate~ 中,初始化时复制到用户项目里,后续就由项目自己维护。
六、这次插件化主要解决了什么
这次整理主要解决了这些问题:
支持 UPM Git URL 安装
框架代码和项目代码分离
Runtime / Editor 目录拆分
ProjectTemplate~ 项目模板
初始化自动复制模板
自动生成配置
自动处理启动场景
自动挂接 GameEntry
自动加入 Build Settings
支持 HybridCLR / Obfuz 初始化
支持 GitHub / Gitee 双地址安装
以前接入框架需要手动处理很多目录和配置。
现在流程变成:
打开 Unity 项目
添加 Package Git URL
安装 MyFramework
执行初始化菜单
开始开发
接入成本会低很多。
七、完整工程方式仍然保留
插件安装不是替代完整工程。
完整工程仍然适合:
查看完整结构
研究框架源码
参与框架开发
查看默认工程组织方式
插件安装更适合:
新项目快速接入
已有项目接入
通过 Package Manager 管理框架
保持框架代码和项目代码分离
两种方式面向的使用场景不同。
总结
MyFramework 现在已经支持以 Unity Package Manager 插件形式安装。
这次调整后,用户不需要再手动复制整个工程,也不需要自己整理框架目录。
现在只需要:
添加 Git URL
安装 Package
执行初始化
就可以在自己的 Unity 项目中接入 MyFramework。
项目地址:
https://github.com/ZHOURUIH/MyFramework
Gitee 地址:
https://gitee.com/inothingtodo/MyFramework
配套服务器框架:
https://github.com/ZHOURUIH/MyServerFramework
如果这个项目对你有帮助,欢迎点一个 Star。