Files
UnityAI/rules/10-架构说明.md
lms 45046d8d96 [docs][refactor]: 拆分重复模块文档并提升框架架构为全局入口
- 技能系统/相机系统/内存对象管理 README 改为概览+导航
- 框架架构.md 由通用框架子目录提升为全局入口
- 更新日期、过时改进点和文档关联路径
- 10-架构说明.md 拆分通用框架与框架架构链接

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

69 lines
3.4 KiB
Markdown
Raw Permalink 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.
# 架构说明
本文档定义 StrayFog 项目的代码分层、真实源码位置与生成边界。具体项目路径不同的时候,以项目配置和生成器实现为准。
## 总体分层
```text
游戏业务GameFunction / GameMono / GameHFResource
|
v
生成后的运行时框架CopyToHF / GameGeneral
|
v
StrayFog Core / Unity Engine / 第三方插件
StrayFog Editor / CopyToX --------------> 生成运行时代码与资源
```
## 源码与生成结果
| 路径 | 类型 | 修改规则 |
|---|---|---|
| `Assets/StrayFog/Core` | 直接维护的框架运行时源码 | 按框架需求直接修改并构建 `StrayFogCore` |
| `Assets/StrayFog/Editor` | Editor 工具与生成器源码 | 直接修改;运行时代码不得反向依赖 |
| `Assets/StrayFog/Editor/CopyToX/CopyToHF` | `ESF_` 热更框架源码 | 框架修改的主要源头,修改后执行 CopyToX |
| `Assets/StrayFog/Editor/CopyToX/CopyToGeneral` | General 层生成源码 | 修改后执行 CopyToX |
| `Assets/Game/GameHFScripte/CopyToHF` | CopyToX 生成的 `HF_` 运行时代码 | 禁止手改,只检查生成差异 |
| `Assets/Game/GameGeneralScripte/CopyToGeneral` | CopyToX 生成的 General 代码 | 禁止手改,只检查生成差异 |
| `Assets/Game/GameHFScripte/GameFunction` | 项目热更业务代码 | 业务需求直接修改 |
| `Assets/Game/GameMono` | 项目 Mono 桥接和组件代码 | 直接修改并构建 `SFMono` |
| `Assets/Game/GameHFResource` | Prefab、图集、配置和 AssetBundle 资源 | 通过 Unity 或已有工具修改并验证序列化结果 |
| `Assets/Editor/Command` | 项目 Editor/MCP 工具 | 直接修改,在 Unity 主线程验证 Editor API |
CopyToX 会删除并重新生成目标子目录,同时把 `ESF_` 标记转换为 `HF_`。因此目标目录中的手工改动会丢失,也不能作为下一次生成的源码。
## 程序集
| 程序集 | 主要职责 |
|---|---|
| `StrayFogCore` | StrayFog 基础运行时 |
| `SFEditor` | StrayFog Editor 工具 |
| `GameGeneral` | 生成后的通用运行时层 |
| `GameHF` | 热更框架与业务代码 |
| `SFMono` | MonoBehaviour、UIMono 和桥接层 |
项目接入第三方插件时,以 asmdef 依赖为准,不把第三方源码复制为框架规则。
## 依赖方向
- 业务代码可以依赖公开框架入口和通用层。
- 业务调用优先通过 `HFFunCatalogue` 等项目统一入口,不绕过封装直接依赖内部单例。
- Core 和生成后的框架运行时不能依赖具体业务模块。
- 运行时代码不能依赖 Editor 程序集。
- Editor 工具可以读取或生成运行时代码和资源,但生成结果不能成为生成器的反向依赖。
## 当前验证基线
AI 每次都应读取目标项目的 `ProjectSettings/ProjectVersion.txt`,不把文档中的版本当作永久值。当前 CrystalBattle_Client 的验证基线为 Unity `2022.3.29f1`
## 文档关联
| 文档 | 关联原因 |
|---|---|
| [开发规则](20-开发规则.md) | 源码边界对应具体修改规则 |
| [工作流清单](40-工作流清单.md) | 生成和验证步骤引用本架构 |
| [模块索引](../modules/模块索引.md) | 模块职责和入口 |
| [通用框架](../modules/frameworks/通用框架/README.md) | General / Core 通用能力说明 |
| [框架架构](../modules/frameworks/框架架构.md) | StrayFog 实现视角的架构说明 |