CodeFighter 项目架构框架,提供 Unity 游戏开发的基础设施。
| 模块 | 命名空间 | 说明 |
|---|---|---|
| Core | CodeFighter.Framework.Core |
GameManager、GameArchitecture、ResourceManager |
| Controller | CodeFighter.Framework.Controller |
MonoController/PureController 基类、ControllerSet、生命周期接口 |
| UI | CodeFighter.UI |
UIKitEx 栈式面板管理、UIEnhancedPanel/UIWidget 基类 |
| Audio | CodeFighter.Audio |
AudioKitEx AudioMixer 分组路由 |
{
"com.unity.addressables": "1.22.3",
"com.unity.inputsystem": "1.14.0",
"com.unity.textmeshpro": "3.0.7",
"com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask"
}QFramework 源码已包含在本仓库中,无需额外安装。
# 将框架仓库作为 subtree 引入项目
git subtree add --prefix=Assets/CodeFighterFramework \
<framework-repo-url> main --squash
# 框架代码将出现在 Assets/CodeFighterFramework/ 下# 拉取框架最新更新
git subtree pull --prefix=Assets/CodeFighterFramework \
<framework-repo-url> main --squash
# 将本地框架修改推送回框架仓库
git subtree push --prefix=Assets/CodeFighterFramework \
<framework-repo-url> main- 框架目录 =
Assets/CodeFighterFramework/,通过CodeFighter.Framework.asmdef编译为独立程序集 - 游戏代码放在
Assets/Main/Scripts/Game/下,通过Game.asmdef引用CodeFighter.Framework - GameManager 的
SetControllers()标记为protected virtual,游戏项目子类在此注册具体控制器 - QFramework 源码 = 框架仓库中的
QFramework/目录,有独立的.asmdef(QFramework、UIKit、AudioKit等) - UI 面板继承
UIEnhancedPanel/UIEnhancedInputPanel,预置体放在Assets/Main/Addressable/Prefabs/UI/ - 枚举(如
AudioMusic、AudioSfx)定义在游戏项目中,不包含在框架内
Game.asmdef (游戏业务代码)
└── CodeFighter.Framework.asmdef
├── QFramework.asmdef
├── UIKit.asmdef
└── AudioKit.asmdef
| 仓库内路径 | 游戏项目路径 |
|---|---|
Core/ |
Assets/CodeFighterFramework/Core/ |
Controller/ |
Assets/CodeFighterFramework/Controller/ |
UI/ |
Assets/CodeFighterFramework/UI/ |
Audio/ |
Assets/CodeFighterFramework/Audio/ |
QFramework/ |
Assets/QFramework/ |
注意:
CodeFighter.Framework.asmdef引用的是程序集名称 (QFramework/UIKit/AudioKit),而非文件路径。只要游戏项目包含同名程序集定义,引用即可正确解析。