- 将 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 迁移与旧代码地图
3.4 KiB
3.4 KiB
技术栈
项目定位
- 这是一个 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/RuntimeAssets/Modules/ShrinkDataSaver/RuntimeAssets/Modules/ShrinkDataSaver.Integration.EventBus
Unity 包依赖
Packages/manifest.json中可确认以下关键依赖:com.cysharp.unitaskcom.unity.nuget.newtonsoft-jsoncom.unity.test-frameworkcom.unity.uguicom.unity.textmeshprocom.unity.timelinecom.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.asmdefAssets/Modules/ShrinkEventBus/Editor/ShrinkEventBus.Editor.asmdefAssets/Modules/ShrinkEventBus/CodeGen/Editor/Unity.ShrinkEventBus.CodeGen.asmdefAssets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaver.Runtime.asmdefAssets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaver.Editor.asmdefAssets/Modules/ShrinkDataSaver/Tests/ShrinkDataSaver.Tests.asmdefAssets/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.csAssets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaverEditorWindow.cs
- 当前扫描到运行时相关文件约
62个,编辑器相关文件约16个。 - 测试主要集中在
Assets/Modules/ShrinkDataSaver/Tests,当前统计到[Test]/[UnityTest]标记共78个。
结论
- 这是一个围绕 Unity 包分发设计的多模块 SDK 仓库。
- 技术选择偏向 Unity 原生能力 +
UniTask+Newtonsoft.Json,没有引入重量级 DI、状态机或第三方测试平台。