uGUI练习(五) Draggable Object
练习目标
学习制作一个可拖动的UI
一、步骤
监听UI的Drag事件,需要我们写一点点的代码。
1、创建一个Panel ,设置size为(100,100)
2、创建DraggableObjectScene.cs脚本
3、把脚本绑定在Panel上

4、脚本内容如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems; public class DraggableObjectScene : MonoBehaviour,IDragHandler,IPointerDownHandler,IPointerUpHandler
{
//Drag事件,设置目标的位置为鼠标的位置
public void OnDrag(PointerEventData eventData)
{
GetComponent<RectTransform>().pivot.Set(0,0);
transform.position=Input.mousePosition;
} public void OnPointerDown(PointerEventData eventData)
{
//缩小
transform.localScale=new Vector3(0.7f,0.7f,0.7f);
} public void OnPointerUp(PointerEventData eventData)
{
//正常大小
transform.localScale=new Vector3(1f,1f,1f);
}
}
Class DraggableObjectScene 继承了IDragHandler,IPointerDownHandler,IPointerUpHandler三个接口,从而可以接受到 OnDrag(PointerEventData eventData) ,OnPointerDown(PointerEventData eventData) ,OnPointerUp(PointerEventData eventData) 三个事件
二、事件系统
Namespace:UnityEngine.EventSystems
IDragHandler (MouseDrag)
Interface to implement if you wish to receive OnDrag callbacks.
IPointerDownHandler (MouseDown)
Interface to implement if you wish to receive OnPointerDown callbacks.
IPointerUpHandler (MouseUp)
Interface to implement if you wish to receive OnPointerUp callbacks.
三、Drag 效果

uGUI练习(五) Draggable Object的更多相关文章
- Java基础:(五)Object通用方法
一.Object对象的九个方法 getClass():hashCode():equals():clone():toString():notify():notifyAll():wait():finali ...
- 一个简单的游戏开发框架(五.对象Object)
前面提到我们把行为Action从对象Object中分离了出来,用各种不同的行为组合出对象的功能.大家都知道,面向对象的一个类,就是数据和操作的集合.操作(行为)被分离出来了,数据怎么办呢?操作依赖的数 ...
- Selenium(十九):unittest单元测试框架(五) Page Object设计模式
1. Page Object设计模式 Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,它主要体现在对界面交互细节的封装,这样可以使测试方案更关注于业务而非界面细节.从 ...
- uGUI练习(七) Drag And Drop
练习目标 练习UI的拖放操作 一.相关组件 EventTrigger Canvas Group ScrollRect Mask Scrollbar 二.拖放练习 1.创建一个Panel,命名Panel ...
- uGUI练习 开篇
一.准备阶段 1.Unity 4.6 Beta b18或更高版本(注:目前泄露版的Unity5.0Beta 对UI的支持并没有4.6 Beta那么好) 2.了解 Unity 2D Sprite的基础知 ...
- uGUI VS NGUI
前言 这篇日志的比较是根据自己掌握知识所写的,请各路大神多多指教. 引擎版本: Unity 4.6 beta 两者区别 1.uGUI的Canvas 有世界坐标和屏幕坐标 2.uGUI的Button属性 ...
- JavaScript内置对象-Object
▓▓▓▓▓▓ 大致介绍 JavaScript的简单数据类型包括:Undefined.Null.Boolean.Number.String.JavaScript中这五种基本数据类型不是对象,其他所有值都 ...
- Java中泛型Class<T>、T与Class<?>、 Object类和Class类、 object.getClass()和Object.class
一.区别 单独的T 代表一个类型(表现形式是一个类名而已) ,而 Class<T>代表这个类型所对应的类(又可以称做类实例.类类型.字节码文件), Class<?>表示类型不确 ...
- 五、java面向对象编程_3
目录 十五.Object类 1.toString 2.equals 十六.对象转型(casting) 十七.动态绑定(多态) 十八.抽象类(abstract) 十九.final关键字 二十.接口 十五 ...
随机推荐
- 通过NameValuePairsValueProvider对象来获取指定前缀的Key
using System; using System.Collections.Generic; using System.Linq; using System.Web.Http.ValueProvid ...
- SeismicPro地震剖面显示程序
SeismicPro是一个地震剖面显示软件,可从标准SEGY地震数据体中抽取纵测线和横测线的二维剖面,并以波形.变面积和变密度等多种方式进行专业化显示,可进行一键式显示方式切换,并可进行定制开发叠加井 ...
- Fragments之间的交互(实现参数传递)
Fragments之间的交互(实现参数传递) 日常开发中,通常Fragments之间可能需要交互,比如基于用户事件改变Fragment的内容.所有Fragment之间的交互需要通过他们关联的Activ ...
- 推导大O阶方法
用大写O()来体现算法时间复杂度的记法,我们称之为大O阶记法. O(1)叫做常数阶:O(n)叫做线性阶:O(n^2)叫做平方阶. 1.用常数1取代运行时间中的所有加法常数. 2.在修改后的运行次数函 ...
- Android WebView 向上向下滑动监听
在手势的 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {}代码 ...
- iOS 7中实现模糊效果
本文译自iOS 7 Blur Effects with GPUImage. iOS 7在视觉方面有许多改变,其中非常吸引人的功能之一就是在整个系统中巧妙的使用了模糊效果.许多第三方应用程序已经采用了这 ...
- ReactiveCocoa之UI篇
前言: 上一篇讲ReactiveCocoa是函数响应式编程,并将多种事件响应的方式统一起来,使得不同的事件响应方式高度统一.同时也讲了ReactiveCocoa框架里面常见的几个概念.接下来基于那几个 ...
- iOS网络-01-NSURLRequest与NSURLConnection
NSURLRequest NSURLRequest封装了一次网络请求所需要的数据,主要封装了以下信息: 请求路径(URL) 请求方法(GET或POST) 请求头 请求体 超时参数 NSURLReque ...
- centos性能监控系列一:常用监控命令
Linux系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存.CPU.硬盘--)出了问题 下面就让我们了解一下这些常用的性能监控工具. 1.upti ...
- 使用hibernate时出现 org.hibernate.HibernateException: Unable to get the default Bean Validation factory
hibernate 在使用junit测试报错: org.hibernate.HibernateException: Unable to get the default Bean Validation ...