Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-KV命名一致性只读盘点-2026-09-29.md
Liubing\LB 6813da149a feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。
保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。

验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。
包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
2026-09-30 19:19:05 +08:00

2.8 KiB
Raw Blame History

M2 KV 命名一致性只读盘点

日期:2026-09-29。仅扫描客户端源码与本工作区合成测试;不访问本机服务器代码。本文件是命名问题盘点,不是重命名方案或编码批准。CP3A 独立补审与既有交付 hash 保持原样。

源码事实

  • C# 源码及测试工程中精确 PlayKV 为 0;大量名称实际是 PlayerKV*,其中 Player 原指玩家数据,并非 PlayFab。名称容易视觉上混淆,且新 KV 栈位于 game.PlayerDataStorage。
  • 客户端约有 127 个 PlayerKV* 类型声明(31 public、96 internal)、24 个 PlayerKV*.cs 文件、75 个含引用的脚本文件及 4 个 Editor 脚本文件;合成测试侧约 88 个源码/工程文件及 16 个 .csproj 含引用。数字按当前工作树只读扫描,实施前必须重扫。
  • 多个测试工程直接列出 PlayerKV*.cs 路径或用该前缀通配;Editor 验证和测试存在反射字符串,如 game.PlayerDataStorage.PlayerKVRuntimeSelection、PlayerKVGameplayLoop。文件重命名要随 .meta 保持 Unity GUID,不能只替换 C# token。
  • 当前 KVMgr 名称已是提供方无关的 KV 入口,但它引用部分 PlayerKV* 类型;PlayFabUserService partial 内承载正式 KV 登录,PlayFabMgr 仍有 Editor KV loop 分支。这是服务职责/提供方边界问题,不能靠 PlayerKV 批量换名消除。现有 Core/KVMgr.cs → Services/PlayerData 物理反向依赖也仍在另一个已记录的架构纠偏范围。
  • 当前阶段多个独立审查文件与交付 hash 指向旧路径和旧名称,应作为历史证据保留;新命名须单独立基线与交付记录,不回写旧审查证据。

已确认的处理时点

用户明确裁决:移植期间保留现有 PlayerKV* 名称,不在 CP2A/CP3A/CP2B 或后续业务迁移中穿插改名;完整移植完成后再处理命名。 因此当前无需决定 KVPlayer*、KV* 或仅对外入口哪种映射,也不生成兼容别名。届时先重扫实际保留类型,清理闲置实现,再形成独立无行为变化的完整方案、精确白名单与受审基线;同步源码/测试/反射字符串/.csproj/Unity .meta,用 Unity CLI Loop 与合成测试验证。历史审查/交付 hash 不回写。

最新用户纠正:保留原 PlayFabUserService、PlayFabMgr 和 PlayFab SDK 路线,新增独立 KV 实现,由启动开关选择;先前“最终删除旧类”的表述已撤销。应在继续大批业务调用迁移前完整评审双提供方切换与独立 KV 实现约束。这与 PlayerKV* 完整移植后另批改名是两项不同工作。正式地址、账号准入、阶段闸与服务器边界均不变。