Unity3DUI实例

图片的拖拽与释放

图标的拖拽
逻辑分析

  1. 为了表示可以拖拽的图片,首先定义一个静态的图片DragImage
  2. 实际可以拖拽的图片,定义为另一个Image组件icon
  3. 当把图片拖拽到目标槽位DropSlot时,改变DropSlot下的DropImage.SourceImage=icon.SourceImage
  4. 拖拽是为了让图标跟随鼠标移动,需要实现一些响应鼠标拖拽的Unity

原理

  1. 初始化:生成一个icon临时对象,专门来显示要拖拽的图片UI
  2. 开始拖:记录鼠标相对于icon的原点(pivot)的偏移
  3. 拖动中:设置icon的位置为鼠标光标位置
  4. 松开后:icon归位

    通过事件参数取得放的GameObject,并进一步取得对应的图片Sprite和Color,设置给目标GameObject。

生成可拖拽的图片,并进行拖拽

public class MyDrag : MonoBehaviour,IBeginDragHandler,IDragHandler,IEndDragHandler
{
   
    
    private GameObject m_icon;
    private GameObject m_canvas;
    private Vector3 m_offset;//



    private void OnEnable()
    {
   
        //在DragImage的位置上创建一个相同的图片,起名icon
        m_canvas = GameObject.Find("Canvas");
        m_icon = new GameObject("icon");//在场景根节点下创建一个跟对象,并命名为icon
        m_icon.transform.SetParent(m_canvas.transform,true);//将icon的节点设置在convas之下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值