NGUI 自定义 Drag Item Script
最近要实现一个NGUI效果。

查看了一下,NGUI有个自带 UIDragDropItem.cs 的组件进过修改后即可以实现。
下面贴上UI布局,代码:

mDragDropItem.cs
using UnityEngine;
using System;
using System.Collections; public class mDragDropItem : UIDragDropItem
{
public BingZhong_Id bingzhong_id; protected override void OnDragDropStart()
{
base.OnDragDropStart(); ///一旦被克隆,克隆体设置新的参数
///表示 克隆体移动 是直接移动本体
if (this.cloneOnDrag)
{
this.cloneOnDrag = false;
this.restriction = Restriction.None;
Destroy(GetComponent<UIDragScrollView>());
}
} protected override void OnDragDropRelease(GameObject surface)
{
// Is there a droppable container?
UIDragDropContainer container = surface ? NGUITools.FindInParents<UIDragDropContainer>(surface) : null; //检测到容器
if (container != null)
{
//clear child
foreach (Transform item in container.transform)
{
Destroy(item.gameObject);
} mTouchID = int.MinValue; // Re-enable the collider
if (mButton != null) mButton.isEnabled = true;
else if (mCollider != null) mCollider.enabled = true; mTrans.parent = (container.reparentTarget != null) ? container.reparentTarget : container.transform;
mTrans.localPosition = Vector3.zero; // Update the grid and table references
mParent = mTrans.parent; // Notify the widgets that the parent has changed
NGUITools.MarkParentAsChanged(gameObject);
}
//没有检测到
else
{
NGUITools.Destroy(gameObject);
}
}
}

在本体上设置如上图的参数, 这样你拖出来就可以是克隆体,原来Grid的Item不变。
但是 克隆体自己 要重新设置参数,
参数设置在 OnDragDropStart() 函数中
(注意:OnDragDropStart() 函数是由本体调用克隆体的, 本体不会调用自己的 OnDragDropStart(), 所以你不用担心你在修改本体的参数)

拖放结束,克隆体 调用 OnDragDropRelease(GameObject surface) 方法,
GameObject surface 表示释放后 NGUI射线 检测到的碰撞体,
如果是NULL或者 没有检测到UIDragDropContainer,则销毁自己,
不然如果有 UIDragDropContainer,则重新设置自己的位置,重新设置自己的parent。
NGUI 自定义 Drag Item Script的更多相关文章
- 使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
AsyncTask使用方法详情:http://www.cnblogs.com/zzw1994/p/4959949.html 下拉开源框架PullToRefresh使用方法和下载详情:http://ww ...
- NGUI ScrollView 循环 Item 实现性能优化
今天来说说一直都让我在项目中头疼的其中一个问题,NGUI 的scrollView 列表性能问题,实现循环使用item减少性能上的开销. 希望能够给其他同学们使用和提供一个我个人的思路,这个写的不是太完 ...
- NGUI UIScrollView - 大量item子项的性能优化
一.当UIScrollView的以下的包括的子项太多(二三十个之上)时.它的滚动就会变的有些卡不流畅,尤其是在手机上. 对些网上也有非常多的优化它的相关,以下是我的一个优化: 1.将在超出裁剪框的一个 ...
- 如何自定义RecycleView item的间距
引言 在以前使用ListView和GridView时,设置item之间的间距还是相对比较简单的,因为它们的基本属性里面Android已经定义好了,可以直接设置属性值即可.但Google为了通用性和灵活 ...
- Android 自定义ListView Item侧滑删除
本程序是基于网上开源项目修改而来,具体来源忘了,懒得搜了,如果有不合适的地方,请原作者联系我,我会及时回复和处理的! 该例子程序中主要包含两个ListView,一个是实现侧滑删除,一个是侧滑出菜单,代 ...
- listview自定义背景以及item自定义背景
item向自定义背景,可以根据position来设置不同的背景. listview背景设置是需要注意设置下面这几项: //点下时整个页面的背景 android:cacheColorHint=" ...
- Qt-网易云音乐界面实现-7 消息中心实现,主要是QListWidget 自定义Item 和QTabwidget使用
最近写的有点烦躁, 感觉内容真的很多!很多!很多. 目前真的想知道网易官方在出这款产品是,用了多少人和多长时间. 今天写的这个消息中心,有点糙,只是原理实现了没有完全复制过来,心里有团火,不想写了. ...
- Qt listwigwt item 加入自定义元素
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- NGUI Scroll List
NGUI Scroll List 1.Add GameObject with Script UI Panel(NGUI -> UI -> NGUI Panel) and Script UI ...
随机推荐
- 第五节:AppDomain FirstChance异常通知
每个AppDomain都可关联一组回调方法:CLR开始查找AppDomain中的catch块时,这些回调方法就会得到调用.这些方法可执行日志记录操作.除此之外,宿主可利用这个机制监视AppDomain ...
- 在EF的code frist下写稳健的权限管理系统:开篇(一)
环境:EF6.0.0.0+Autofac3.5.0.0+MVC4.0+pure6.0+Jquery IDE:vs2012,数据库:vs2008r2 搭建环境如下: 我给它取名字为cactus:仙人球, ...
- FineUI PK DWZ
一.概述 FineUI(ExtAspNet)是基于 jQuery / ExtJS 的 ASP.NET 控件库. DWZ是基于JQuery的一个客户端框架. 二.比较 三.总结 这两个东西实质都是对控件 ...
- R 中安装xlsx包缺少java环境解决方案
1.安装Java程序(官网win7 64位系统的Java安装程序及网址http://www.java.com/zh_CN/download/manual.jsp),选择windows 64位脱机安装到 ...
- Ubuntu 修改用户密码与启动root账号
passwd sban 修改当前帐号 sudo passwd root 修改root帐号 修改/etc/ssh/sshd_config,改: PermitRootLogin without-passw ...
- SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)
临时表:Test /****** 对象: Table [dbo].[Test] 脚本日期: 05/10/2013 11:42:07 ******/ SET ANSI_NULLS ON GO SET Q ...
- iTween基础之CameraFade(摄像机淡入淡出)
一.基础介绍:二.基础属性 原文地址: http://blog.csdn.net/dingkun520wy/article/details/50896420 一.基础介绍 CameraTexture: ...
- [网络配置相关]——netstat命令
netstat:显示网络状态信息 -a 显示所有连接状态的网络的所有选项-l 仅显示LISTEN状态的连接-n 直接显示IP地址,而不通过域名服务器-p 把进程名和进程PID也显示出 ...
- 20145120 《Java程序设计》实验二实验报告
20145120 <Java程序设计>实验二实验报告 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握U ...
- quartz2D简单使用
quartz2D绘图 1:上下文:context,这个翻译不好理解,其实翻译环境更好一点,就是给了你一个画板,你看不到而已 在: CGContextRef ctx = UIGraphicsGetCur ...