unity3d-学习笔记3-卡牌游戏制作

卡牌游戏制作2

需求:根据是否消耗能量判定是否让卡面显示cost属性;完成根据不同卡牌类型实现不同颜色的卡背;实现40个简易卡为一组
完成不同颜色其实不难,小弟学习的教程里是给card类创建了一个颜色属性,通过判断这个属性是否等于某一个颜色,在将这个颜色返回给程序里对应的Image对象,从而实现颜色的变换,小弟在看教程的时候感觉好像复杂了很多,因此做了一些调整,首先,由于我的卡牌游戏和教程里的不一样,所以在一开始的card类里属性就已经不尽相同,但这也会出现一些问题,这个问题后面再说,小弟的属性是这样的
unity3d-学习笔记3-卡牌游戏制作_第1张图片
首先是根据cost0/1判定是否显示cost属性,通过调用gameobject获得当前对象,然后component获得组件,再设置alfha值控制器显示,但输入后发现,当cost为0时,整个卡牌都消失了,原因很明显,因为获得的gameobject是一整个卡,所以消失的自然是整个卡,因此我们需要获得的不是当前对象,而是当前对象的子对象,再调整其alha值;那么怎么获得这个子组件呢,我使用的方法是在thiscard类里创建一个gameobject类,在程序里将卡背的Image组件放入其中,这样就能把子组件绑定到thiscard类里了,然后调用这个gameobject里的alha值就可以实现对子组件的隐藏与显示了;
我多了一个iscost 的判断,这是因为我的卡牌里有一个是否消耗能量的判定,因此在card类里提前用这个属性进行判断,然后又因为消耗能量和不消耗能量的卡刚好是不同类型的卡背,因此就可以通过这个iscost属性来直接判断给卡背设置什么颜色;由于在前面已经能获取到卡背Image这个子组件了,所以在进行判断后可以直接对这个组件进行颜色的设置,代码如下图;
unity3d-学习笔记3-卡牌游戏制作_第2张图片
最后就是实现简易40为一组的卡组;通过创建一个新的空对象,写一个新的脚本,设置一个随机数,创建一个40的循环,随机循环已有的卡即可
代码如图:
unity3d-学习笔记3-卡牌游戏制作_第3张图片
在这里注意,教程里unity3d-学习笔记3-卡牌游戏制作_第4张图片
card类将其父类删掉了,不删除的话将新的脚本放入空对象后,空对象会无法获得card类的实例,从而无法得到carddatabase里的数据,即使运行了程序,显示出来的都是空的;但是,教程里删除了这个父类之后,它的程序里是不报错的,但小弟的程序里还是会有黄色的报错信息,由于时间原因今天就不解决这个问题了,如图
unity3d-学习笔记3-卡牌游戏制作_第5张图片
总结:没有从头开始学,这些小问题是肯定会出现的,虽然能实现功能就好,但很担心这些小问题会导致后面的功能无法实现,希望能一切顺利吧,btw,教程里没有语音是真的太难顶了,全靠领悟和查其他资料,希望明天的内容不会很难!

你可能感兴趣的:(unity,unity3d)