/// <summary> /// 保存地图信息到本地持久 /// </summary> public static void SaveMap() { if (_mapInfo.Count == 0) { return; } Map map = new Map(); map._mapInfo = _mapInfo; GameInfoSaveManager.SaveClassInfo <Map>("BlockPuzzleMap", map); }
/// <summary> /// 保存信息 /// </summary> /// <param name="mapInfo"></param> public static void SaveMap(List <List <int> > mapInfo) { GameInfoSaveManager.StartGetSaveInfo(); if (mapInfo.Count != virticalCount) { Debug.LogWarning("地图高度不正确"); return; } if (mapInfo[0].Count != HorizontalCount) { Debug.LogWarning("地图宽度不正确"); return; } if (_mapInfo.Count == 0) { GetMap(); //获取位置信息 x y 坐标 } List <List <MapSingleInfo> > InspectormapInfo = new List <List <MapSingleInfo> >(); for (int i = 0; i < mapInfo.Count; i++) { List <MapSingleInfo> temp = new List <MapSingleInfo>(); for (int j = 0; j < mapInfo[i].Count; j++) { MapSingleInfo elem = SetElemInfo(_mapInfo[i][j].PosX, _mapInfo[i][j].Posy.ToString(), ColorType.ColorWood, i, j, mapInfo[i][j]); temp.Add(elem); } InspectormapInfo.Add(temp); } Map map = new Map(); map._mapInfo = InspectormapInfo; _mapInfo = InspectormapInfo; string currentIndex = ShapManager.currentIndex.ToString(); GameInfoSaveManager.SaveAttributeInfo("currentIndex", currentIndex); GameInfoSaveManager.SaveClassInfo <Map>("BlockPuzzleMap", map); GameInfoSaveManager.EndSetSaveInfo(); }
/// <summary> /// 初始化地图 /// </summary> public static void InitMap() { try { ShapManager.currentIndex = int.Parse(GameInfoSaveManager.GetAttributeInfo("currentIndex")); } catch { ShapManager.currentIndex = 0; } Debug.Log("获取生成进度"); Map map = GameInfoSaveManager.GetClassInfo <Map>("BlockPuzzleMap"); if (map == null) { SetDefaultMap(); Debug.Log("设置默认地图信息"); } else { _mapInfo = map._mapInfo; Debug.Log("读取已储存的地图信息"); } }
/// <summary> /// 结束游戏 保存游戏数据 /// </summary> private void OnDestroy() { // MapHelper.SaveMap(); GameInfoSaveManager.EndSetSaveInfo(); }
/// <summary> /// 游戏开始获取存储数据 /// </summary> private void Awake() { GameInfoSaveManager.StartGetSaveInfo(); }