MyFramework:现在已经支持以 Unity 插件形式安装了

之前 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

属于项目。

所以 GameHotFix 不应该固定在 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。