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

卡牌游戏制作第四天

需求:实现程序运行过程中点击出现卡背,以及创建一个button组件实现卡组的洗牌,还有创建第二个可视的卡组

出现卡背很简单,在card对象里创建一个Image对象,命名为cardBack,然后在创建新的一个类命名为cardBack,获取当前类对象,在thisCard里创建两个bool值,一个是静态,一个非静态,这里好理解,和java大同小异,静态的资源在确定后就不会改变,而且也能够在非子类的其他类里调用这个数值,通过在程序里点击修改费静态的bool值,将其赋值给静态bool,然后再cardBack类里对这个bool值进行判断,true则获取前面创建的当前对象的setActive,设置为false,反之则true,代码如下
unity3d-学习笔记4-卡牌游戏制作_第1张图片
然后运行测试即可
下一个是洗牌,这个逻辑也相对不难
在上一个笔记里我们已经实现了随机生成40个卡,这里我们先在canvas里创建一个button组件,然后在playerDeck类里定义一个新的集合用来存放临时的卡组,然后通过一个循环将游戏一开始或得到的卡组按顺序传到新的集合里,然后定义一个1-40的随机变量,将原卡组里的任意一个卡传到已经传给新集合的那个卡类,然后再将新集合里存放的原来的卡传给已经把任意一个卡传给其他类的卡,通过这个创建新的临时存放对象来实现对象之间的更换,代码如下
unity3d-学习笔记4-卡牌游戏制作_第2张图片
对了,然后是在创建的button里
unity3d-学习笔记4-卡牌游戏制作_第3张图片
点击这个红框里的添加,然后选到playdeck类里的shuffle的方法,这样在程序运行的时候才能实现点击的效果
上面这个可能表述不是很明确,其实就相当于是两个变量之间的数据交换,是通过创建一个第三变量来实现的,这个例子可能可以帮助理解,至少我是这么理解的
最后一个是创建一个新的卡组,这个也比较简单,通过创建一个新的panel,复制几个新的卡到这个panel里就可以了,这里需要注意,因为视频教程里没有提及如何将已经创建好的组件拉到assets里,所以我在这里卡了很久,其实只要把你已经做好的组件拉进下面的assets里就可以了,是不是很简单粗暴,这个我查了半天没查到办法,最后还是自己碰出来,果然没有从头学就是这么难受,不过还好没有卡很久,由于教程里的这个功能并不是我目前所需要的,所以我也没怎么深刻的去理解他,下面贴个代码就当完成任务了吧,逻辑本身也不难
unity3d-学习笔记4-卡牌游戏制作_第4张图片
unity3d-学习笔记4-卡牌游戏制作_第5张图片
unity3d-学习笔记4-卡牌游戏制作_第6张图片
总结,今天的代码也还是相对比较简单的,至少目前的功能都实现了,可能描述会有些冗杂,也可能表述的不是很清晰,个人比较懒,做了两天就不太想做这个学习笔记了,因为很花时间,但还是希望自己能坚持吧,为了实现自己想做的游戏,加油!

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