# 风险与关注点 ## 1. 中文编码已明显受损 - 多个文件在 PowerShell 读取时出现明显乱码,不适合继续作为事实来源直接复用。 - 典型位置: - `Assets/Modules/ShrinkDataSaver/README.md` - `Assets/Modules/ShrinkDataSaver.Integration.EventBus/README.md` - `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.cs` - `Assets/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` 复用语义 - IL Post Processor 自动注册 ## 4. `ShrinkSettings.Unwatch` API 设计存在可用性问题 - `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSettings.cs` - `Watch` 内部把 `Action` 包成新的 `Action` 存入 `_watchers`。 - `Unwatch` 却要求外部传 `Action`,调用者几乎无法用原始 `Action` 精确移除。 - 这不是理论问题,而是实际 API 不对称。 ## 5. 截图路径可能留下纹理对象生命周期问题 - `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.cs` - `CaptureScreenshotAsync` 在截图和缩放时会创建 `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 测试缺口、以及若干运行时边界没有自动化验证。 - 如果后续要继续基于这个仓库规划工作,建议先确认真实源码仓与编码基线,再决定是否进入功能开发或补测试阶段。