重新进游戏后加载的是错误的地图

昨天 12:45综合
找到了!路径 0(管理员模式) 的核心问题:
local loaded = Map.LoadFromFile(draftMap)  -- 从本地沙盒文件加载
沙盒文件在刷新后会丢失! 绑定 oral -> map_0428_123008 存在云端,但文件 maps/map_0428_123008.json 只在内存沙盒里,重新进入游戏后文件不存在,Map.LoadFromFile 返回 false,然后 fall through 到路径 A(LevelManager,加载了别的地图)。
修复方案:当本地文件不存在时,从 MapEditorPersistence 的云端加载地图数据,然后用 Map.LoadFromData() 加载。
Map.LoadFromData 完全支持编辑器保存的 v2 格式(data.grid + data.ground + data.overlay)。现在我可以写修复方案了:
根本问题:路径 0 执行 Map.LoadFromFile(draftMap) 失败时(沙盒文件刷新后消失),直接 fall through 到 LevelManager,而不是尝试从云端加载同名地图数据。
修复方案:失败时用 CloudProxy 直接拉取 "map_" .. draftMap 的云端数据,再调 Map.LoadFromData()。这是异步流程,需要改造成回调链。
根本原因与修复说明:
游戏地图加载路径 0(管理员草稿绑定)原来只做了:
DraftBindings 找到绑定 oral → map_0428_123008
  ↓
Map.LoadFromFile("map_0428_123008")   ← 刷新后沙盒文件丢失,返回 false
  ↓
fall through 到 LevelManager          ← 加载了错误地图!
修复后的流程:
DraftBindings 找到绑定 oral → map_0428_123008
  ↓
Map.LoadFromFile()  ← 本地有就直接用(编辑器刚保存的情况)
  ↓ 失败(刷新后沙盒清空)
CloudProxy:Get("map_map_0428_123008")  ← 从云端异步拉取地图数据
  ↓ 成功
Map.LoadFromData(data)  ← 直接用 v2 格式数据初始化地图 ✅