public void Init(LocalSkillData skillData, List <SkillData> myskillDatas) { SkillData newSkill = new SkillData(skillData.id, skillData.name, skillData.des, skillData.atk, skillData.cd, skillData.icon, skillData.price, skillData.mana); //注册点击事件 LearnSkillButton.onClick.RemoveAllListeners(); LearnSkillButton.onClick.AddListener(() => { LearnSkill(newSkill, skillData.price); }); //图集获取数据 SpriteAtlas sa = ResManager.Instance.Load <SpriteAtlas>("UI/Skill/SkillAtlas"); sillImage.sprite = sa.GetSprite(skillData.icon); skillNameText.text = skillData.name; SkillAtkText.text = skillData.atk.ToString(); SkilManaText.text = skillData.mana.ToString(); SkillCdText.text = skillData.cd.ToString(); SkillDesText.text = skillData.des; DiamondCostText.text = skillData.price.ToString(); //控制是否显示学习技能 //如果拥有该技能那么不弹 //如果没有该技能就谈 for (int i = 0; i < myskillDatas.Count; i++) { if (skillData.id == myskillDatas[i].id) { isHave = true; break; } if (i == myskillDatas.Count - 1) { isHave = false; } } if (isHave == true) { LearnSkillButton.gameObject.SetActive(false); } else { LearnSkillButton.gameObject.SetActive(true); } }
/// <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); } }