Log Detail

vampire-like Git 变更总结

完成架构分层规整(含EntityData迁移、命名空间规范、配套约束文档)及SpriteCache资源读取异步化改造

2026/06/04 basil/vampire-like commit: 5de3fdc7..2a0cbc8f

架构重构代码规范异步改造

basil/vampire-like 开发周报(2026-06-03 ~ 2026-06-04)

本次改动概览

本周针对 vampire-like 仓库共提交 5 个 commit,累计代码增删行数为 +494 / -143,其中代码类调整 4 项,架构配套文档更新 1 项。

核心改动说明

架构分层规整:从结构到约束的全链路解耦

本周集中做了一批架构层面的调整,核心是为了规范代码分层编排,让数据层、运行层、UI 与编排层各司其职,从根上解决之前跨层乱引用导致的严重耦合问题,主要包含三部分动作:

  1. 核心数据目录迁移:把原 Runtime 路径下的 EntityData 相关文件、PropItem.cs 统一迁移到 Assets/GameMain/Scripts/Base 对应目录下,新增 Base/Entity 目录明确基础数据层的边界,同步清理了 PropItem 里冗余的 using 引用,共涉及 20 个文件,增删 +116 / -40。
  2. 命名空间全量规范:批量调整 21 个文件的引用规则:移除 GameFramework 层 3 个运行时文件里冗余的 Utility 别名引用,把所有 CustomUtility 的引用统一修正为 SepCore.CustomUtility,清理 DebugPanel 等文件的无效 using,同时同步更新了 Launcher.unity 启动场景里的流程类引用路径,把原 Procedure 命名空间下的启动、切场景流程统一调整为 SepCore.Procedure 前缀,避免运行时找不到类的问题。
  3. 架构约束文档落地:合并了 refactor-assembly 分支的 PR #1 到 GPU-Instancing 分支,输出了两份落地规范:
    • 新增《程序集组织规范》(AssemblyOrganization.md),明确 Assets/GameMain/Scripts 下的 C# 程序集拆分规则,核心约定单向依赖原则:下层不允许引用上层,上层可自由引用下层,从规则上规避跨层耦合。
    • 更新《UI-5层架构设计规范》,补充插件化落地方案:UIModule 以可选插件的形式放在 Assets/Plugins/UIModule/ 下,不拆独立程序集,而是通过 .asmref 融入原有项目各程序集,兼顾插件的可插拔性和维护成本,避免多程序集带来的编译复杂度提升。

这批调整属于大范围的引用改动,其中核心数据基类 EntityDataBase.cs 被多轮提交叠加修改,存在隐藏引用冲突的风险。调整完成后我们完整跑通了一遍游戏全流程,修复了改动过程中出现的零散问题,目前项目可正常运行。

SpriteCache 读取异步化:统一代码风格

调整了 SpriteCache 的资源读取方式,把 Presentation 层相关的核心方法从同步签名批量改成 UniTask 异步签名,涉及 RoleItem/DisplayItem 的 OnInit、GoodsItemContext 的创建方法、DisplayItemInfoForm 的 RefreshUI、ShopController 的 BuildContext 等共 7 个文件,增删 +58 / -44。

这次改造主要是为了统一代码风格:项目之前已经引入了 UniTask 异步框架,但 SpriteCache 相关逻辑还在用旧的事件回调写法,逻辑绕、可读性差,所以逐步把这条调用链路切换成异步风格,改完之后整体逻辑直观很多。开发过程中没有遇到明显的阻塞问题,主要工作量集中在批量调整方法签名和对应调用点,改动完成后也随全流程测试验证过资源加载的正确性。

后续跟进事项

  1. 架构重构的落地节奏:接下来会按照新出的程序集规范,逐步推进各层的程序集拆分,每轮改动控制影响范围,避免一次性调整过多文件导致难排查问题。
  2. 异步改造的补全与对齐:目前 SpriteCache 的主链路已经改成异步,后续新增相关业务逻辑时要统一使用异步写法,同时排查边缘场景下是否存在遗漏的调用点未调整。
  3. 架构规范的团队落地:把新输出的两份架构规范同步给所有开发同学,后续新增代码严格遵守分层、命名空间和程序集依赖规则,避免刚梳理清楚的边界又被乱引用打破。
  4. 核心改动的回归验证:后续版本迭代时重点关注实体数据、资源加载相关的逻辑,避免这批大改动留下的隐藏问题漏到线上。

注:本文由模型 unknown 生成(草稿与终稿同模型)。