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 ...
随机推荐
- C#高级功能(二)LINQ 和Enumerable类
介绍LINQ之前先介绍一下枚举器 Iterator:枚举器如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的.我们将以创建一个简单化的 ...
- 2016/09/21 java split用法
public String[] split(String regex) 默认limit为0 public String[] split(String regex, int limit) 当limit& ...
- IL中的栈和闪电的Owin推荐
最近几天有幸得到闪电大哥的指点,了解了EMIT和IL中的一些指令.虽然有高射炮打蚊子的说法,但是我相信“二八定律”,80%的功能可以用20%的技术解决,20%的功能只能用80%的技术解决.大哥的博客: ...
- KNN算法的简单实现
一 算法原理:已知一个训练样本集,其中每个训练样本都有自己的标记(label),即我们知道样本集中每一个样本数据与所属分类的对应关系.输入没有标记的新数据后,将新数据的每个特征与样本集中的数据对应的 ...
- [terry笔记]Oracle10g/11g安装-redhat5.5
操作系统准备工作 其实真正的进入图形界面安装是简单的,只是前期的配置比较繁琐,如版本.空间.位置.软件包.用户.环境变量.内核参数,这里主要讨论前期配置. 10g与11g的单实例安装基本一样,主要区别 ...
- Swing基础
Swing基础 JFrame JPanel 绘图:paint 监听事件: ActionListener KeyListener Listener和Adapter 计时器:Timer Time ...
- GNU make 规则
clean : rm *.tmp 规则格式: targets : prerequisites recipe ... targets : prerequisites : recipe recipe .. ...
- oracle 查看隐含参数脚本
set linesize 132 column name format a30 column value format a25 select x.ksppinm name, y.ksppstvl va ...
- ios中怎么样设置drawRect方法中绘图的位置
其中drawRect方法中的参数rect就是用来设置位置的,
- iOS 开发者能用上的 10 个 Xcode 插件
本文由 伯乐在线 - 邢敏 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:code.tutsplus.com.欢迎加入翻译小组. 1. XcodeColors:给 Xcode 控制台添加颜色 2 ...