【Unity 28】 Unity中的物品拖动,2D简单小游戏

这篇博客记录了Unity中实现物品拖动交换(包括单元格内图片交换)和2D简单小游戏的开发过程。涉及内容包括利用UI接口实现拖动、交换子类位置或图片信息,以及通过IPointerEnterHandler接口获取拖动路径上的物体信息。此外,还提到了2D游戏的基础功能,如玩家移动、发射子弹、敌机生成、爆炸动画和声音系统,但敌方攻击和死亡判定等功能尚未添加。
摘要由CSDN通过智能技术生成

PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更。
笔记内容均为 自己理解,不保证每个都对

Hint近期 可能会少更,一边准备学校项目,一边学习Unity,一边写程序文档,有点忙不过来

Part 1 物品拖动交换(交换单元格):

主要实现,两个Panel之间的 单元格内 图片的交换,即 模拟背包和仓库

物体有两种方式:
第一种:交换子类在父类中的位置顺序,适用于在同一个Panel
第二种:交换图片信息,即交换Image组件中的Sprite

拖拽的前提是我们要获取到将要拖拽物体的信息:

    public void OnBeginDrag(PointerEventData eventData)
    {

       if(curImage.color.a != 0)		//判断图片是否全透明
        {

            canDrag = true;
            // 将 当前选择的图片  赋值给  拖动的图片  
            PickManager.Instance.dragImage.sprite = curImage.sprite;

            //隐藏当前图片
            curImage.color = new Color(1, 1, 1, 0);
			
			//将 拖动的图片显示
            PickManager.Instance.dragImage.color = new Color(1, 1, 1, 1);

            //初始化一下
            PickManager.Instance.downImage = null;

        }
    }

利用 上篇博客 所学到的 UI部分接口 可实现物品拖动:

    public void OnDrag(PointerEventData eventData)
    {
             if(canDrag)
            //移动 拖拽的 图片
            PickManager.Instance.dragImage.transform.position = eventData.position;
    }

若要实现物体交换,我们则需要获得 拖拽物体所经过的物体的信息
可以通过 IPointerEnterHandler 接口来获取
PickManager为自己定义的管理器脚本,只是实例化一次
curImage为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值