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

18 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 实现约束](M2-双提供方用户服务切换与KV独立实现约束-2026-09-29.md)。这与 `PlayerKV*` **完整移植后另批改名**是两项不同工作。正式地址、账号准入、阶段闸与服务器边界均不变。