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

合力做的第一个项目.day3

热度:77   发布时间:2023-12-06 14:04:17.0

今天事情稍微有点多,有点累。

今天我重新整理了思路,把导入部分的一部分重新写了,

//更改之前的代码
//Type是card类里的一个整型变量
for (int i = 1; i < collect.Count; i++)
{Card item = new Card();if (item.Type== '0'){item = new BaseCard();}if (item.Type== '1'){item = new SkillCard();}
}

注:type是指卡牌类型。

我在多次调试之后发现,if条件里面的东西并没有执行,判断条件始终为假,但是我在策划表中的值就是0。之后我更换了另一种方法——使用switch

List<Card> cardList=new List<Card>;
switch (item.Type)
{case 0:item=new BaseCard(),;BaseCard baseCard = new BaseCard();cardList.Add(baseCard);Debug.Log(baseCard.Name);break;case 1:item = new SkillCard();SkillCard skillCard = new SkillCard();cardList.Add(skillCard);Debug.Log(skillCard.Effect);break;
}

至于我为什么使用两个不同的变量储存basecard和skillcard的话,是因为我前面的代码去看了github也没有太明白,水平还是太差了,所以我没有动他,但是因为尽管我写了让item=new BaseCard(); 但是item的标签仍然是Card类型,所以我多写了两个类的对象,能够通过Add加入到cardList中

接下来,我又发现了一个问题

public GameObject cardObjec;
viod start()
{GameObject cradObject = GameObject.Instantiate(cardPrefab);
}

按下开始后,unity直接无响应,结果发现是我把这个脚本错误的挂在到了预制体上。

这样的话,我认为会导致递归,每次实例化之后会再次调用这个脚本里面的东西,再次实例化,最终导致无限递归。

明天再继续加油吧,今天还是稍微点累啊。

先这样。