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

卡牌游戏制作2

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值