unity3d-学习笔记18-卡牌游戏制作(优化功能-卡牌被拖出的时候层级要作为最高)

优化功能-卡牌被拖出的时候层级要作为最高

使用思路

最简单粗暴的方式就是在cardController类里添加当点击到这张卡的时候把他的父级修改为canvas(在我这里是最高级),然后就能变成层级第一的物体,不被其他物体挡住
当拖动结束后,把他的父级再修改回桌面类这个物体即可

待优化的地方

拖动结束后物体会自动变手牌的最后一个,由于时间关系,今天就先完成这么多,后面再优化吧
2021.2.26更新:优化的思路是:在桌面类创建一个方法,每当调用发牌方法的时候就给桌面上现有的卡进行遍历并根据索引赋值排序的操作
给cardController类的enddrag方法添加这个方法,前提是满足不在指定条件的范围下。这样就可以实现卡牌记录的效果了
2021.2.27更新:之前的方法不行,因为卡类这个预制体里的组件和子级很多,如果要使用遍历的方法堆内存的占用就会变得很大。所以在尝试过后我换了另一种思路
只需在cardController类里克隆一个当前对象,将原对象进行影藏,然后将这个克隆的对象的父级设置为canvas,然后在ondrag的方法里移动的是这个克隆的对象,在enddrag方法里判定如果不是指定的区域的话,就把这个父级删掉,然后恢复原对象即可实现这个功能
但是还有待优化的地方:就是感觉不好,因为移动的时候,其他卡没有自动对齐,会不太好看,只能看后面有没有其他解决的思路了
在这里插入图片描述
创建克隆的新对象,在begindrag里实例化
在这里插入图片描述
隐藏掉原对象,然后让鼠标移动的坐标值赋值到克隆的对象上
在这里插入图片描述
在enddrag方法里调用这个销毁克隆对象,恢复原对象的方法即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

淳杰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值