4.9 KiB
4.9 KiB
StrayFog 框架开发规范指南
一、开发前准备
1.1 核心概念理解
1.1.1 框架层级关系
┌─────────────────────────────────────────────────────────────┐
│ 开发层级视图 │
├─────────────────────────────────────────────────────────────┤
│ 业务层 (你开发的代码) │
│ ├── UI界面、业务逻辑、游戏数据 │
│ │ │
│ │ ┌───────────────────────────────────────────────────┐ │
│ │ │ 核心库 (只读,框架团队维护) │ │
│ │ │ ├── Core: 模拟行为、全局数据 │ │
│ │ │ ├── HF: 资源管理、事件系统、相机管理 │ │
│ │ │ └── General: 状态机、工具类 │ │
│ │ └───────────────────────────────────────────────────┘ │
│ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
1.1.2 核心库访问原则
| 原则 | 说明 |
|---|---|
| 只读访问 | 核心库代码只可读取,不可修改 |
| 接口优先 | 通过接口访问服务,而非直接实例化实现类 |
| 继承扩展 | 通过继承抽象类实现自定义逻辑 |
| 依赖注入 | 通过管理器获取实例,而非硬编码 |
二、业务代码结构
2.1 目录组织规范
Assets/Game/GameHFScripte/GameFunction/
├── Event/ # 消息处理
│ ├── ServerToClient/ # 服务器到客户端消息
│ ├── ClientToClient/ # 客户端内部消息
│ └── Handle/ # 消息处理器
├── GameRoot/ # 框架调用入口
│ ├── HFGameStart.cs # 热更新进入入口
│ ├── HFFunCatalogue.cs # 框架统一调用入口
│ ├── HFFunCatalogue_Function.cs # 功能调用方法
│ └── ...
├── HFDownLoadSubPackage/ # 分包下载
│ ├── HFSubPackageManager.cs # 分包管理器
│ ├── HFGameStartAssetsCheckManager.cs # 资源检查
│ └── ...
├── HFExtends/ # Class扩展方法
│ ├── UI/ # UI扩展
│ ├── Material/ # 材质扩展
│ ├── String/ # 字符串扩展
│ └── ...
├── Logic/ # 游戏主要业务逻辑(存放各功能Manager)
│ ├── User/ # 用户相关
│ ├── Login/ # 登录系统
│ ├── Fight/ # 战斗系统
│ ├── CardDeck/ # 卡组系统
│ ├── Bag/ # 背包系统
│ └── ...
├── UIWindows/ # UI窗口业务逻辑
│ ├── Login/ # 登录窗口
│ ├── Lobby/ # 大厅窗口
│ ├── Fight/ # 战斗窗口
│ ├── Shop/ # 商店窗口
│ └── ...
├── GameEntity/ # 游戏实体
│ ├── Entity/ # 实体定义
│ ├── EntityPool/ # 实体对象池
│ └── ...
├── SoundManagerPro/ # 音效管理
├── SceneManager/ # 场景管理
├── SDK/ # SDK集成
└── MonoCompent/ # Mono组件
2.2 文件命名规范
| 文件类型 | 命名规则 | 示例 |
|---|---|---|
| 窗口类 | XXXWindow.cs |
LoginWindow.cs |
| 组件类 | XXXComponent.cs |
ItemCellComponent.cs |
| 管理器类 | XXXManager.cs |
UIManager.cs |
| 数据类 | XXXData.cs |
PlayerData.cs |
| 配置类 | XXXConfig.cs |
SkillConfig.cs |
版本: v1.0
生效日期: 2026年
适用范围: GiftGameX项目业务开发人员