当前位置: 代码迷 >> 综合 >> 合力做的第一个项目.day6
  详细解决方案

合力做的第一个项目.day6

热度:44   发布时间:2023-12-06 14:03:51.0

今天我在昨天的基础上继续修复bug,我发现,为什么playercards的数组长度为0,是因为这是玩家的卡牌,而非我随机抽出来的卡牌的集合

public void OnClickedOpen()
{i = UnityEngine.Random.Range(0, cardInfo.Length);GameObject newCard = Instantiate(cardObject, cardPool.transform);newCard.gameObject.GetComponent<ShowCardInfo>().card = CardsCollection.CardIns(i,            cardInfo);cards.Add(newCard);}

我只是建立了一个game object类的链表存放newcard,而并没有创建card类的链表来存放生成的卡牌的数据,于是我在这个方法的下面写了一行:

List<Card> cardList=new List<Card>();
cardList.Add(newCard.gameObject.GetComponent<ShowCardInfo>().card);

这个cardList里面存放的就是临时生成的Card的数据。

接下来就是把playdata里面的Sava Data()改为SavaData(List<Card> cardList)就ok了

附上我最终修改的代码。

 public void SaveData(List<Card> cardList)
{playerCards = new int[cardList.Count];//保存玩家数据string filePath = Application.dataPath + "playerData.csv";Debug.Log("cards.lenth =" + playerCards.Length)List<string> datas = new List<string>();datas.Add("coin," + playerCoins.ToString());for (int i = 1; i <= 4; i++)//计数相同的卡牌{int k = 0;for (int j = 0; j < cardList.Count; j++){if (i == cardList[j].Id ){k++;}}datas.Add("card," + i + "," + k);}//保存进入路径File.WriteAllLines(filePath, datas);
}

这样的话就可以把生成的卡牌放入玩家数据的.csv文件中,并且计数了!

今天先这样。