public void AddSkill(SkillData newSkill) { //给本地加 skillDataList.Add(newSkill); //给服务器加 ServerSkillData serverSkillData = new ServerSkillData(userName, newSkill.id); playerDatas.Add(serverSkillData); }
/// <summary> /// 返回当前玩家拥有的技能列表 /// </summary> /// <returns></returns> public List <SkillData> GetSkillList() { //找当当前的用户名 if (userName == "") { userName = UserModel.Instance.GetMyUserId(); } if (skillDataList.Count == 0) { //如果没有初始数据,就创建一个用户初始数据 if (!File.Exists(Application.persistentDataPath + "/SkillData.Json")) { //创建初始数据,合并服务器数据和本地数据 //创建服务器数据并存下来 ServerSkillData serverSkillData = new ServerSkillData(userName, 2011); playerDatas.Add(serverSkillData); //根据服务器数据到本地获取数据 LocalSkillData localSkillData = LocalSkillDataMgr.Instance.GetSkillDataById(serverSkillData.id); //合并数据 SkillData skillData = new SkillData(serverSkillData.id, localSkillData.name, localSkillData.des, localSkillData.atk, localSkillData.cd, localSkillData.icon, localSkillData.price, localSkillData.mana); //存到玩家当前数据 skillDataList.Add(skillData); ServerSkillData serverSkillData2 = new ServerSkillData(userName, 2009); playerDatas.Add(serverSkillData2); LocalSkillData localSkillData2 = LocalSkillDataMgr.Instance.GetSkillDataById(serverSkillData2.id); SkillData skillData2 = new SkillData(serverSkillData2.id, localSkillData2.name, localSkillData2.des, localSkillData2.atk, localSkillData2.cd, localSkillData2.icon, localSkillData2.price, localSkillData2.mana); skillDataList.Add(skillData2); //读入json SaveData(); } else { string json = File.ReadAllText(Application.persistentDataPath + "/SkillData.Json"); //读Json playerDatas = JsonMapper.ToObject <List <ServerSkillData> >(json); //取出表里面当前玩家的数据,存在当前玩家的服务器数据中 for (int i = 0; i < playerDatas.Count; i++) { if (playerDatas[i].username == userName) { //serverSkillData.Add(playerDatas[i]); LocalSkillData localSkillData = LocalSkillDataMgr.Instance.GetSkillDataById(playerDatas[i].id); SkillData skillData2 = new SkillData(localSkillData.id, localSkillData.name, localSkillData.des, localSkillData.atk, localSkillData.cd, localSkillData.icon, localSkillData.price, localSkillData.mana); //服务器数据加上本地数据 skillDataList.Add(skillData2); } } } return(skillDataList); } else { return(skillDataList); } }