Files
Workspace/Docs/Archive/codebase-map-2026-05-23/STACK.md
T
cneicy d74c2f08ca feat(packages): 内置 SDK 包并完善 ContextLoader 集成
- 将 ShrinkEventBus、ShrinkDataSaver 及其 EventBus 集成从 gitlink 转为仓库直接维护的完整 UPM 包,补齐运行时、编辑器工具、测试与文档
- 新增 Command 和 Network 的 App 集成组件,支持 ContextLoader 服务发布、可逆注销及 Network Loopback 生命周期管理
- 更新 Starter 与演示组合逻辑,缺失模块时可注册、已有兼容安装器时可覆盖,并补充宿主启动断言
- 升级内部包依赖与 Shared CodeGen 包定义,放宽 Integration.App 包的 Git 忽略规则
- 将独立服务器生成器改为基于已编译程序集的语义扫描,支持 partial、复杂泛型、命名冲突检测及模板 SHA-256 覆写保护
- 新增 Network 语义扫描、模板保护和 App 组件生命周期测试
- 新增真实 UPM 消费工程验证脚本,校验内部版本一致性、程序集加载及 EditMode 测试
- 重构当前架构文档并归档已完成的 Cordis 迁移与旧代码地图
2026-08-18 18:06:34 +08:00

75 lines
3.4 KiB
Markdown

# 技术栈
## 项目定位
- 这是一个 Unity SDK 型仓库,不是完整游戏项目。
- 当前 Unity 版本是 `2022.3.62f3`,见 `ProjectSettings/ProjectVersion.txt`
- 当前仅配置了一个示例场景 `Assets/Scenes/SampleScene.unity`,见 `ProjectSettings/EditorBuildSettings.asset`
## 运行时基础
- 核心语言是 C#,通过 Unity asmdef 拆分模块。
- 根解决方案是 `ShrinkSDK.sln`,包含 `ShrinkEventBus``ShrinkDataSaver`、集成层、编辑器扩展和测试项目。
- 运行时代码主要在:
- `Assets/Modules/ShrinkEventBus/Runtime`
- `Assets/Modules/ShrinkDataSaver/Runtime`
- `Assets/Modules/ShrinkDataSaver.Integration.EventBus`
## Unity 包依赖
- `Packages/manifest.json` 中可确认以下关键依赖:
- `com.cysharp.unitask`
- `com.unity.nuget.newtonsoft-json`
- `com.unity.test-framework`
- `com.unity.ugui`
- `com.unity.textmeshpro`
- `com.unity.timeline`
- `com.unity.render-pipelines.universal`
## 仓库内 SDK 包
- `Assets/Modules/ShrinkEventBus/package.json`
- 包名 `com.cneicy.shrink-eventbus`
- 版本 `1.1.4`
- 依赖 `UniTask`
- `Assets/Modules/ShrinkDataSaver/package.json`
- 包名 `com.cneicy.shrink-datasaver`
- 版本 `2.0.0`
- 依赖 `UniTask``Newtonsoft.Json`
- `Assets/Modules/ShrinkDataSaver.Integration.EventBus/package.json`
- 包名 `com.cneicy.shrink-datasaver-integration-eventbus`
- 版本 `2.0.0`
- 依赖 `ShrinkDataSaver``ShrinkEventBus`
## 程序集拆分
- `Assets/Modules/ShrinkEventBus/Runtime/ShrinkEventBus.Runtime.asmdef`
- `Assets/Modules/ShrinkEventBus/Editor/ShrinkEventBus.Editor.asmdef`
- `Assets/Modules/ShrinkEventBus/CodeGen/Editor/Unity.ShrinkEventBus.CodeGen.asmdef`
- `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaver.Runtime.asmdef`
- `Assets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaver.Editor.asmdef`
- `Assets/Modules/ShrinkDataSaver/Tests/ShrinkDataSaver.Tests.asmdef`
- `Assets/Modules/ShrinkDataSaver.Integration.EventBus/ShrinkDataSaver.Integration.EventBus.asmdef`
## 关键技术点
- 事件系统使用泛型静态缓存与对象池优化热路径,入口在 `Assets/Modules/ShrinkEventBus/Runtime/EventBus.cs`
- 自动注册依赖 Unity IL Post Processor 与 Mono.Cecil,入口在 `Assets/Modules/ShrinkEventBus/CodeGen/Editor/EventBusILPostProcessor.cs`
- 存档系统使用 `UniTask` 处理异步 IO,入口在 `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.cs`
- 序列化基于 `Newtonsoft.Json`,入口在 `Assets/Modules/ShrinkDataSaver/Runtime/DataSerializer.cs`
- 加密使用 AES-CBC + PBKDF2-SHA256,入口在 `Assets/Modules/ShrinkDataSaver/Runtime/SaveEncryptor.cs`
- 本地存储基于 `Application.persistentDataPath` 与文件系统,入口在 `Assets/Modules/ShrinkDataSaver/Runtime/LocalStorageProvider.cs`
## 编辑器与测试
- 编辑器工具包括:
- `Assets/Modules/ShrinkEventBus/Editor/EventBusViewerWindow.cs`
- `Assets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaverEditorWindow.cs`
- 当前扫描到运行时相关文件约 `62` 个,编辑器相关文件约 `16` 个。
- 测试主要集中在 `Assets/Modules/ShrinkDataSaver/Tests`,当前统计到 `[Test]`/`[UnityTest]` 标记共 `78` 个。
## 结论
- 这是一个围绕 Unity 包分发设计的多模块 SDK 仓库。
- 技术选择偏向 Unity 原生能力 + `UniTask` + `Newtonsoft.Json`,没有引入重量级 DI、状态机或第三方测试平台。