/// <summary> /// 保存服务器数据 /// </summary> public void SaveData() { if (playerDatas.Count == 0) { GetEquipList(); } for (int i = playerDatas.Count - 1; i >= 0; i--) { if (playerDatas[i].username == userName) { playerDatas.Remove(playerDatas[i]); } } for (int i = 0; i < EquipDataList.Count; i++) { ServerEquipData serverEquipData = new ServerEquipData(userName, EquipDataList[i].id); playerDatas.Add(serverEquipData); } string json = JsonMapper.ToJson(playerDatas); File.WriteAllText(Application.persistentDataPath + "/EquipData.Json", json, System.Text.Encoding.UTF8); }
/// <summary> /// 返回当前玩家拥有的装备列表 /// </summary> /// <returns></returns> public List <EquipData> GetEquipList() { //找当当前的用户名 if (userName == "") { userName = UserModel.Instance.GetMyUserId(); } if (EquipDataList.Count == 0) { //如果没有初始数据,就创建一个用户初始数据 if (!File.Exists(Application.persistentDataPath + "/EquipData.Json")) { //创建初始数据,合并服务器数据和本地数据 //创建服务器数据并存下来 ServerEquipData serverEquipData = new ServerEquipData(userName, 8001); playerDatas.Add(serverEquipData); //根据服务器数据到本地获取数据 LocalEquipData localEquipData = EquipDataMgr.Instance.GetEquipDataById(serverEquipData.id); //合并数据 EquipData equipData = new EquipData(serverEquipData.id, localEquipData.name, localEquipData.des, localEquipData.addAtk, localEquipData.addDef, localEquipData.icon, localEquipData.price, localEquipData.addMana, localEquipData.addHp, localEquipData.addSpeed, localEquipData.equipType); //存到玩家当前数据 EquipDataList.Add(equipData); ServerEquipData serverEquipData2 = new ServerEquipData(userName, 8007); playerDatas.Add(serverEquipData2); LocalEquipData localEquipData2 = EquipDataMgr.Instance.GetEquipDataById(serverEquipData2.id); EquipData equipData2 = new EquipData(serverEquipData2.id, localEquipData2.name, localEquipData2.des, localEquipData2.addAtk, localEquipData2.addDef, localEquipData2.icon, localEquipData2.price, localEquipData2.addMana, localEquipData2.addHp, localEquipData2.addSpeed, localEquipData2.equipType); EquipDataList.Add(equipData2); //读入json SaveData(); } else { string json = File.ReadAllText(Application.persistentDataPath + "/EquipData.Json"); //读Json playerDatas = JsonMapper.ToObject <List <ServerEquipData> >(json); //取出表里面当前玩家的数据,存在当前玩家的服务器数据中 for (int i = 0; i < playerDatas.Count; i++) { if (playerDatas[i].username == userName) { //serverSkillData.Add(playerDatas[i]); LocalEquipData localEquipData2 = EquipDataMgr.Instance.GetEquipDataById(playerDatas[i].id); EquipData equipData2 = new EquipData(localEquipData2.id, localEquipData2.name, localEquipData2.des, localEquipData2.addAtk, localEquipData2.addDef, localEquipData2.icon, localEquipData2.price, localEquipData2.addMana, localEquipData2.addHp, localEquipData2.addSpeed, localEquipData2.equipType); //服务器数据加上本地数据 EquipDataList.Add(equipData2); } } } return(EquipDataList); } else { return(EquipDataList); } }