- 将 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.1 KiB
3.1 KiB
风险与关注点
1. 中文编码已明显受损
- 多个文件在 PowerShell 读取时出现明显乱码,不适合继续作为事实来源直接复用。
- 典型位置:
Assets/Modules/ShrinkDataSaver/README.mdAssets/Modules/ShrinkDataSaver.Integration.EventBus/README.mdAssets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.csAssets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaverEditorWindow.cs
- 这会影响对外文档、Unity Inspector 文本、日志可读性和包元数据质量。
2. 仓库当前不在 Git 工作树内
- 在
D:\UnityBuilds\ShrinkSDK执行git status --short返回 “not a git repository”。 - 这意味着当前无法依赖 Git 记录变更、提交地图文档或审查历史。
- 如果这个目录只是导出副本,需要明确真实源码仓位置。
3. EventBus 缺少自动化测试证据
- 当前测试基本只覆盖
Assets/Modules/ShrinkDataSaver/Tests。 ShrinkEventBus的以下关键能力没有看到测试文件:- 优先级排序
- 取消事件传播
- 异步 handler 路径
EventPool<T>复用语义- IL Post Processor 自动注册
4. ShrinkSettings.Unwatch API 设计存在可用性问题
Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSettings.csWatch<T>内部把Action<T>包成新的Action<object>存入_watchers。Unwatch却要求外部传Action<object>,调用者几乎无法用原始Action<T>精确移除。- 这不是理论问题,而是实际 API 不对称。
5. 截图路径可能留下纹理对象生命周期问题
Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.csCaptureScreenshotAsync在截图和缩放时会创建Texture2D,但没有看到显式销毁临时纹理。- 在频繁截图存档场景下,值得确认是否会累积内存压力。
6. 集成桥接存在重复订阅风险窗口
Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEventBusBridge.cs- 该桥接在
RuntimeInitializeOnLoadMethod里直接给静态事件追加订阅,没有看到“已初始化”防重复保护。 - 如果遇到特定域重载配置或重复初始化路径,可能造成重复转发。
- 这一点需要在真实 Unity 运行模式下验证,而不是仅凭源码静态阅读下结论。
7. 集成层版本描述需要复核
Assets/Modules/ShrinkDataSaver.Integration.EventBus/package.json- 该包依赖中声明
com.cneicy.shrink-eventbus版本1.0.0,但本仓库内ShrinkEventBus包版本是1.1.4。 - 这不一定是错误,但至少说明版本关系需要人工确认。
8. 没有看到 CI 或发布流水线
- 当前未发现
.github/workflows、GitLab CI 或 Azure Pipelines 配置。 - 对一个要分发的 Unity SDK 来说,这意味着:
- 测试可能不自动跑
- 文档与包版本可能靠手工维护
- 编译织入问题更难被持续发现
结论
- 当前最现实的三个问题是:编码质量、EventBus 测试缺口、以及若干运行时边界没有自动化验证。
- 如果后续要继续基于这个仓库规划工作,建议先确认真实源码仓与编码基线,再决定是否进入功能开发或补测试阶段。