今天事情稍微有点多,有点累。
今天我重新整理了思路,把导入部分的一部分重新写了,
//更改之前的代码
//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直接无响应,结果发现是我把这个脚本错误的挂在到了预制体上。
这样的话,我认为会导致递归,每次实例化之后会再次调用这个脚本里面的东西,再次实例化,最终导致无限递归。
明天再继续加油吧,今天还是稍微点累啊。
先这样。