106 lines
4.9 KiB
Markdown
106 lines
4.9 KiB
Markdown
|
|
# 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项目业务开发人员
|