unity3D NGUI背包制作(拖拽,滑动,排列)之二

首先做好容器
并加上拖拽停留的组件

unity3D NGUI背包制作(拖拽,滑动,排列)之二_第1张图片在这里插入图片描述
其次创建物体 并加上碰撞
unity3D NGUI背包制作(拖拽,滑动,排列)之二_第2张图片
然后 我们看看拖拽的源代码
拖拽开始
在这里插入图片描述
拖拽中
delta为位置 屏幕的位置
在这里插入图片描述
拖拽释放
surface为碰撞的物体信息
在这里插入图片描述

然后我们创建新的脚本 并且继承
在这里插入图片描述
注意如果挂上了继承的脚本这原来的脚本要移除
两个拖拽的脚本会使拖拽不正确

记得重写了方法记得先调用一遍
要不让会出现异常报错

unity3D NGUI背包制作(拖拽,滑动,排列)之二_第3张图片

public class DragDemo : UIDragDropItem
{
    private Transform tagTransfrom;
    Transform localTransfrom;

    //重写拖拽结束的方法
    protected override void OnDragStart()
    {
        base.OnDragStart();
      localTransfrom = transform.parent;


    }
    protected override void OnDragDropEnd(GameObject suffer)
    {

        base.OnDragDropEnd(suffer);
        if (suffer.tag != null)
        {
            if (suffer.tag == "BackGround")
            {
                transform.parent = suffer.transform;
                transform.localPosition = Vector3.zero;
            }
            else if (suffer.tag == "UIItem")
            {
                tagTransfrom = transform.parent;

                transform.parent = suffer.transform.parent;
                transform.localPosition = Vector3.zero;
                suffer.transform.parent = tagTransfrom;
                suffer.transform.localPosition = Vector3.zero;

            }
        }
        else
        {
            transform.parent = localTransfrom;
            transform.localPosition = Vector3.zero;
        }
    }

}

你可能感兴趣的:(NGUI笔记,笔记)