MyFramework 是一套面向 Unity 游戏项目的通用开发框架。
它不是只封装几个 Manager,也不是只提供一组工具类,而是把 Unity 项目中常见的运行时系统、热更新分层、UI 工具链、配置表工具链、协议生成、对象池、事件、命令、输入、资源管理和工程检查整理到了一套结构里。
项目地址:
https://github.com/ZHOURUIH/MyFramework
一、框架定位
MyFramework 的定位是:
适合长期维护项目的 Unity 游戏开发框架。
它重点解决这些问题:
-
项目代码如何分层
-
热更新代码如何组织
-
UI Prefab 如何生成 C# 绑定代码
-
配置表如何编辑、检查和生成代码
-
网络协议如何减少客户端和服务器不一致
-
框架对象如何复用和清理状态
-
输入、事件、命令如何统一管理
-
项目资源和代码如何提前检查
它不是最轻量的框架。
它更适合需要完整工程结构的项目。
二、适合项目
如果你的项目符合下面这些情况,MyFramework 会比较适合。
1. 长期维护
适合:
-
商业项目
-
长期运营项目
-
RPG / MMO 项目
-
强联网项目
-
系统会持续增加的项目
长期项目最怕的不是前期写得慢,而是后期越改越乱。
MyFramework 通过分层、生成工具、检查工具和统一生命周期管理,降低长期维护成本。
2. 需要热更新
MyFramework 使用明确的热更新分层:
Frame_Base 非热更基础层
Frame_Game 非热更框架层
Game 非热更启动层
Frame_HotFix 热更框架层
HotFix 热更业务层
启动逻辑、热更加载、框架代码、业务代码各自有明确位置。
适合需要 HybridCLR 热更新的项目。
3. UI 数量较多
适合有大量窗口、子窗口、滚动列表、按钮、文本和复杂 Prefab 层级的项目。
MyFramework 提供 UGUIGenerator,可以根据 UI Prefab 生成:
-
成员变量
-
构造函数
-
assignWindow -
点击事件注册
-
界面注册代码
UI 结构变化后,可以重新生成绑定代码,减少手写节点查找和漏改问题。
4. 配置表较多
适合配置表多、字段多、需要多人维护的项目。
MyFramework 配置表工具链支持:
-
CSV 数据
-
自研表格编辑器
-
表头规则
-
字段类型
-
字段所属
-
字段链接表
-
长度链接
-
字段标签
-
数据检查
-
C# 数据类生成
-
注册代码生成
配置表不只是读取文件,而是从编辑、检查到代码生成的一套流程。
5. 需要客户端和服务器协作
MyFramework 配套 C++ 服务器框架 MyServerFramework。
适合需要处理这些内容的项目:
-
登录
-
Ping
-
战斗
-
网络消息
-
协议生成
-
配置表双端使用
-
客户端和服务器字段一致性
如果项目是强联网游戏,协议和配置表生成会比较有价值。
6. 不想把逻辑散在 MonoBehaviour 中
MyFramework 更倾向于统一系统生命周期。
资源、UI、输入、事件、命令、对象池、场景等系统都由框架统一注册、初始化、更新和销毁。
这样项目不会变成大量 MonoBehaviour 互相调用。
7. 关注 GC 和对象生命周期
MyFramework 提供:
-
ClassObject -
ClassPool -
ClassPoolThread -
resetProperty -
ClassScope -
SafeList
适合战斗、网络、事件、命令、UI 刷新等高频逻辑较多的项目。
对象池不仅是减少 new,更重要的是通过 resetProperty 避免对象复用时残留旧状态。
8. 需要工程检查
MyFramework 提供多种 Editor 检查和生成工具:
-
UI 代码生成
-
配置表代码生成
-
协议代码生成
-
资源检查
-
代码检查
-
热更引用检查
-
Prefab 检查
-
图集检查
-
resetProperty检查
这些工具的目的,是把问题尽量提前到编辑器阶段发现,而不是运行时才暴露。
三、不适合场景
MyFramework 不一定适合所有项目。
下面这些情况可能不太适合:
-
只做很小的 Demo
-
只做轻量单机小游戏
-
不需要热更新
-
UI 和配置表很少
-
不需要网络协议和服务器配合
-
只想找最轻、最快上手的工具库
-
不想接受框架规范和目录约束
MyFramework 的优势在中大型项目和长期维护项目中更明显。
如果项目规模很小,它会显得偏重。
四、总结
MyFramework 不是最轻量的 Unity 框架。
它适合的不是几天完成的小 Demo,而是需要长期维护、持续迭代、UI 和配置表较多、需要热更新、需要客户端服务器协作的 Unity 游戏项目。
如果你的项目需要:
清晰分层
热更新支持
UI 代码生成
配置表生成
协议生成
对象池管理
统一输入
统一命令
统一事件
Editor 检查工具
客户端服务器协作
那么 MyFramework 会比较适合。
它的目标不是让项目一开始写得最少,而是让项目后期不容易失控。
这就是 MyFramework 作为 Unity 游戏开发通用框架的主要价值。