Files
UnityAI/rules/10-架构说明.md
lms ee1ff7f444 [docs][refactor]: 将旧 01~06 中文教程合并整理为 modules/frameworks 文件夹结构
- 删除 01~05 旧中文教程目录
- 将 03 核心功能教程拆分为各 framework 模块的子文档
- 06 工具脚本移入 modules/frameworks/编辑器工具/UI工具/
- 非框架内容合并进 rules/20-开发规则.md 与 rules/40-工作流清单.md
- 更新所有交叉链接与文档关联表

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 18:36:15 +08:00

145 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 架构说明
> 本文档是 UnityAI / StrayFog 框架知识库的长期规则,为 Codex (AGENTS.md) 和 Claude Code (CLAUDE.md) 共同引用。
项目文档按三类组织:**核心运行时**、**编辑器工具**、**业务参考**。详细模块索引见 [模块索引](../modules/模块索引.md)。
---
## 分类口径
- **核心运行时**支撑游戏运行的内部系统例如实体、UI、网络、资源、事件、场景、对象池。
- **编辑器工具**Unity Editor 内使用的生成器、Inspector、菜单、配置工具。
- **业务参考**:外部实际项目的业务实现示例,仅作参考,不作为框架规范。
---
## 总体分层
```text
┌─────────────────────────────────────────────────────────────┐
│ StrayFog Framework │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────────┐ ┌──────────────────┐ ┌───────────┐ │
│ │ GameGeneral │ │ GameHF │ │ Core │ │
│ │ 通用工具层 │ │ 业务核心层 │ │ 基础框架 │ │
│ └────────┬─────────┘ └────────┬─────────┘ └─────┬─────┘ │
├───────────┼─────────────────────┼──────────────────┼─────────┤
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Unity Engine │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 各层职责
| 层级 | 路径 | 职责描述 |
|------|------|---------|
| **Core 层** | `Assets/StrayFog/Core` | 核心基础框架,模拟行为系统、全局数据管理 |
| **HF 层** | `Assets/Game/GameHFScripte/CopyToHF` | 游戏核心业务框架资源管理、事件系统、相机管理、UI 管理等 |
| **General 层** | `Assets/Game/GameGeneralScripte` | 通用工具层,状态机、辅助工具、扩展方法等 |
---
## 核心运行时层
核心运行时按技术职责命名,可以对应内部目录。
- **Hotfix 启动/目录**`GameFunction/GameRoot/`
- **实体系统**`GameFunction/GameEntity/``Logic/EntityData/`
- **UI 系统**`CopyToHF/UIWindowMgr/``GameFunction/UIWindows/``GameMono/Scripts/UIMono/`
- **场景系统**`GameFunction/SceneManager/``GameMono/Scenes/`
- **网络系统**`CopyToHF/Network/``GameFunction/WebSocket/``GoogleProtobufNetwork/`(如项目使用)
- **资源系统**`CopyToHF/AssetBundle/``CopyToHF/SpriteAtlas/``GameHFResource/`
- **事件系统**`CopyToHF/Event/``GameFunction/Event/`
- **对象池**`CopyToHF/MemoryManager/``GameFunction/GameEntity/EntityPool/`
- **通用框架**`GameGeneralScripte/``StrayFog/Core/`
---
## 编辑器工具层
- `Assets/StrayFog/Editor/`StrayFog 编辑器扩展。
- `Assets/Editor/`:项目编辑器资源与脚本。
- `Assets/AutoBuildScript/Editor/`:编辑器生成工具(如项目使用)。
---
## 程序集边界
已识别 asmdef
| 程序集 | 主要路径 | 分类 |
|---|---|---|
| `StrayFogCore` | `Assets/StrayFog/Core/` | 核心运行时 |
| `SFEditor` | `Assets/StrayFog/Editor/` | 编辑器工具 |
| `GameHF` | `Assets/Game/GameHFScripte/` | 核心运行时 / hotfix 承载 |
| `GameGeneral` | `Assets/Game/GameGeneralScripte/` | 核心运行时 / general |
| `SFMono` | `Assets/Game/GameMono/` | 核心运行时 / Mono 桥接 |
---
## 依赖方向
```text
业务功能PVE、PVP、背包、商店等放在外部业务参考层
|
v
核心运行时GameRoot、GameEntity、UIWindowMgr、SceneManager、Network、AssetBundle、Event 等)
|
v
通用框架 / 第三方插件StrayFog Core、Spine、DOTween 等)
|
v
Unity Engine / .NET Runtime
编辑器工具 -----------------> 读取/生成 核心运行时代码
```
### 依赖规则
| 上层 | 可以依赖 | 禁止依赖 |
|---|---|---|
| 业务功能 | 核心运行时、通用框架 | 编辑器工具、第三方插件源码 |
| 核心运行时 | 通用框架、第三方插件 | 具体业务功能、编辑器工具 |
| 编辑器工具 | 核心运行时源码、生成模板 | 被运行时代码反向引用 |
### 说明
- 运行时代码不要依赖 Editor 程序集。
- 第三方插件不应反向依赖具体玩法模块。
- 业务功能代码按业务命名,代码目录可以仍然按框架/实现组织。
---
## 文档与代码分层对应
| 文档层 | 对应代码层 | 示例 |
|--------|-----------|------|
| `modules/frameworks/` | 核心运行时 | 实体系统、UI 系统、事件系统等 |
| `modules/frameworks/通用框架/框架架构.md` | 核心运行时 + 规范 | StrayFog 整体架构分析 |
| `rules/` | 规范与流程 | 开发规则、工作流清单、架构说明 |
---
## 待确认
- 各项目实际使用的 StrayFog 版本与目录可能略有差异,文档中路径以当前仓库描述的 `Assets/StrayFog/``Assets/Game/` 结构为准。
- 网络系统、配置生成系统是否为所有使用 StrayFog 的项目标配,需按具体项目确认。
---
## 文档关联
> 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
| 文档 | 关联原因 |
|---|---|
| [modules/frameworks/通用框架/框架架构.md](../modules/frameworks/通用框架/框架架构.md) | 实现视角的框架架构分析 |
| [modules/模块索引.md](../modules/模块索引.md) | 模块索引是架构说明的落地入口,分类口径需一致 |
| [rules/30-模块登记规则.md](30-模块登记规则.md) | 模块登记口径、状态定义与架构分层互相影响 |
| [rules/20-开发规则.md](20-开发规则.md) | 程序集边界、依赖方向与开发规则互相引用 |
| [rules/项目规则入口.md](项目规则入口.md) | 架构说明是项目规则入口索引的关键规则 |