[unity]NGUI实现背包拖拽+使用EventDelegate回调
来源:互联网 发布:qq淘宝优惠群怎么做 编辑:程序博客网 时间:2024/05/22 17:28
一、使用的NGUI工具类
UIGrid
UIScrollView
UIDragScrollView
UIDragDropItem
UIDragDropContainer
UIDragDropRoot
UIScrollView可以上下拉动背包的容器。
UIGrid配合UIScrollView实现格子自动排列排序。
UIDragDropItem背包格子拖动类。
UIDragScrollView可以拖着格子实现下拉。
UIDragDropContainer是背包格子拖动接收类。
UIDragDropRoot格子拖动时复制体容器。
二、背包拖动
scrollview的Inspector
scrollview是背包的地图也是背包的容器
加入UIScrollView之后会自动加入一个UIPanel。UIScrollView可以指定一个横向和纵向的ScrollBar。
listGrid的Inspector
要实现排序的话Sorting要设置不为Non
代码中指定一个排序方法
transform.GetComponent<UIGrid>().onCustomSort = func; int func(Transform a ,Transform b) { return 0; }
拖拽的Item
using UnityEngine;using System.Collections;//继承UIDragDropItem,为了指定一个回调的EventDelegate,同时加了一个自定义的参数typepublic class UIDropCardItem : UIDragDropItem { public EventDelegate call; public int type; //拖拽释放后触发 protected override void OnDragDropRelease (GameObject surface) {// 判断是否在一个容器上释放 if (surface != null &&surface.GetComponent<UIDragDropContainer>()!=null ) { //surface是接收拖拽的容器 call.Execute(); // 执行回调 } base.OnDragDropRelease(surface); }}
创建一个格子,设置delegate
go = GameObject.Instantiate(Resources.Load<GameObject>("prefab/LibItem")) as GameObject; tran.GetComponent<UIGrid>().AddChild(go.transform); go.transform.localScale = new Vector3(1,1,1);//不用nguiTools加的话要重设置一下缩放比例 go.GetComponent<UISprite>().spriteName = "card" + ids[i]; UIDropCardItem drag = go.AddComponent<UIDropCardItem>(); drag.type = ids[i]; drag.cloneOnDrag = true; drag.call = new EventDelegate(this, "TeamChange"); EventDelegate ed = new EventDelegate(this, "LibCardClick"); ed.parameters[0] = new EventDelegate.Parameter(drag, "type");
UIDragDropContainer和UIDragDropRoot
UIDragDropContainer加入到接收拖拽的容器就好了,就是UIDropCardItem 类里的surface,可以再UIDropCardItem 拖拽释放的时候设置一些图片、音效。
UIDragDropRoot找个GameObject加进去。UIDragDropItem 的cloneOnDrag 不为true的话不加也行。
0 0
- [unity]NGUI实现背包拖拽+使用EventDelegate回调
- NGUI-EventDelegate使用
- Unity插件NGUI实现背包系统
- Unity插件NGUI实现背包系统
- 【Unity&NGUI】背包拖拽问题&物体穿透
- Unity基于NGUI实现拖拽功能
- Unity3D使用NGUI实现简单背包功能
- ugui和ngui如何实现拖拽背包功能
- NGUI实现背包系统
- NGUI实现背包效果
- 【Unity】NGUI背包系统——背包整理按钮的实现
- NGUI中EventDelegate时间委托的使用方法
- Unity NGUI使用总结
- Unity NGUI 使用经验
- 使用NGUI实现带有放大功能的scrollview背包
- 关于Unity里NGUI的背包
- 【Unity&NGUI】背包系统崩溃的解决办法
- 【Unity&NGUI】背包系统显示隐藏问题
- Linux的进程/线程间通信方式
- 如何避免OOM 异常?
- android实现横竖屏8个方向触屏事件的捕捉并有相对应的动画提示
- 直播,一位大神带来的福利!
- Apache Spark DataFrames入门指南:操作DataFrame
- [unity]NGUI实现背包拖拽+使用EventDelegate回调
- 16.7.17 C组总结
- Windows下安装Redis
- 8086汇编语言 Q命令退出debug
- 【NOIP2016提高A组模拟7.17】寻找
- matlab绘制 三维剖面图
- C#已解决问题集锦
- centos7下安装python3
- 适配器设计模式