NGUI不仅提供了图形接口,还提供了输入事件接口!事件接口是通过UICamera来实现的。

Unity3d 为我们提供的原装的input尽管非常方便,但真正跨平台使用时(尤其是跨手机与Pc机时)仍然不是非常方便。

NGUI对input又进行了二次封装,将全部平台上的事件统一转换成MouseOrTouch。

使用起来也比input要方便的多。input要在update中处理。而NGUI为我们提供了大量的函数,若要使用函数。仅仅须要在脚本中加入下列函数就可以:

/// - OnHover (isOver) is sent when the mouse hovers over a collider or moves away.
/// - OnPress (isDown) is sent when a mouse button gets pressed on the collider.
/// - OnSelect (selected) is sent when a mouse button is released on the same object as it was pressed on.
/// - OnClick () is sent with the same conditions as OnSelect, with the added check to see if the mouse has not moved much. UICamera.currentTouchID tells you which button was clicked.
/// - OnDoubleClick () is sent when the click happens twice within a fourth of a second. UICamera.currentTouchID tells you which button was clicked.
/// - OnDrag (delta) is sent when a mouse or touch gets pressed on a collider and starts dragging it.
/// - OnDrop (gameObject) is sent when the mouse or touch get released on a different collider than the one that was being dragged.
/// - OnInput (text) is sent when typing (after selecting a collider by clicking on it).
/// - OnTooltip (show) is sent when the mouse hovers over a collider for some time without moving.
/// - OnScroll (float delta) is sent out when the mouse scroll wheel is moved.
/// - OnKey (KeyCode key) is sent when keyboard or controller input is used.

但它的缺点就是。这些事件都要基于碰撞体。也就是说,若要使用这些函数,就必须将脚本所在的gameobject上加入碰撞体。!!

这样。假设出现多层叠加的情况,就比較纠结了。

比方如今有这样一个需求:

1、有一个面板,这个面板支持左右拖动。而且在此面包上的不论什么地方拖动都有效!

2、此面板上有个button。

3、当在button上左右拖拽时,面板也要感应到拖拽事件!

若要完毕这个需求,首先须要有两个碰撞体,非常明显,button的碰撞体要在面板的上面。但这样无法完毕第三条需求。

幸运的是,NGUI为我们留了个后门!它能够设置一个默认的事件接受体。

切此gameobjec不须要碰撞体!

static public GameObject genericEventHandler;

如今实现上面提到的三个需求。

1、将面板的gameobject赋值给genericEventHandler。

2、给面板上的某个脚本加入一个OnDrag函数

3、加入一个button(有碰撞体)

这样就攻克了上面的问题,且仅仅须要一个碰撞体!

ngui 输入事件处理相关推荐

  1. PPAPI插件的绘图与输入事件处理

    在PPAPI插件与浏览器的交互过程一文中学习了PPAPI插件与浏览器的交互流程.渲染逻辑.输入事件的处理逻辑,这次我们改造一下graphics_2d_example示例,加入处理鼠标事件的逻辑,演示一 ...

  2. 9.2.2、Libgdx的输入处理之事件处理

    (官网:www.libgdx.cn) 事件处理可以更加准确的获取用户的输入.事件处理提供了一种可以通过用户接口进行交互的方法.比如按下.释放一个按钮. 输入处理 事件处理通过观察者模式来完成.首先,需 ...

  3. Unity3D编程之NGUI和UGUI比较

    现在主流项目中基本上都是NGUI和UGUI,那么到底选哪个.我们先来做个比较. 图集处理功能比较         NGUI需要使用工具手动拼接图片成图集. UGUI开发期间可以直接使用图片作为元素,打 ...

  4. UI(一) - NGUI和UGUI比较

    UI是游戏项目中重要的组成部分,面对一个从零开始的项目,首先要确立的就是选用哪个UI系统作为主框架. === 现在主流项目中基本上都是NGUI和UGUI,那么到底选哪个.我们先来做个比较. 图集处理功 ...

  5. Android 系统(57)---深入理解Android输入系统

    <深入理解Android 卷III>第五章 深入理解Android输入系统 <深入理解Android 卷III>即将发布,作者是张大伟.此书填补了深入理解Android Fra ...

  6. linux模拟手柄输入,linux下如何模拟按键输入和模拟鼠标

    查看/dev/input/eventX是什么类型的事件, cat /proc/bus/input/devices 设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键 ...

  7. NGUI的UIEvents事件系统

    本人第一篇博客,请大家多多包涵 在NGUI中,在UIROOT下的物体,只要有碰撞体那么你就可以给它用上NGUI的事件处理,只用在物体的任意一个脚本上加上以下事件函数中的一个或多个函数就可以了 void ...

  8. Chromium分发输入事件给WebKit处理的过程分析

    Chromium的Render进程接收到Browser进程分发过来的输入事件之后,会在Compoistor线程中处理掉滑动和捏合手势这两种特殊的输入事件,其它类型的输入事件则交给Main线程处理.Ma ...

  9. Linux输入子系统简析

    1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺. 2. 背景 本文基于 Linux 4.14 内核源码进行分析. 3. 简介 Linux 内核输入子系统,负责 ...

最新文章

  1. Servlet 服务器端小程序
  2. ucore-lab1-练习5report
  3. VS2003,VS2005,VS2008 低版本打开高版本的解决方案和工程文件
  4. pandas 遍历并修改_Pandas循环提速7万多倍!Python数据分析攻略
  5. C#编写简易的学生成绩查询
  6. 大数据之-Hadoop伪分布式_配置日志聚集---大数据之hadoop工作笔记0028
  7. 【神经网络】LSTM理论介绍
  8. RSA非对称加密密钥生成方法
  9. 工作中个人注册的媒体账号离职要归公司所有?
  10. html添加空隙,html空隙
  11. Axure设计原型如何如何插入视频
  12. Could not load extension class org.apache.cxf.transport.http_jetty.JettyDestinationFactory.
  13. 一、中英文对切基本公式
  14. 【C#/WPF】Bitmap、BitmapImage、ImageSource 、byte[]转换问题
  15. Android 自动抓取网站图标实现分享样式的定制
  16. Hyperledger Fabric之MSP详解
  17. Recyclerview的简介与使用
  18. 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31
  19. 链家全国房价数据分析 : 数据获取
  20. 基于基站定位数据的商圈分析

热门文章

  1. python 判断图片是否损坏_检查图片是否损坏、图片后缀是否与实际图片类型对应 - Python...
  2. rds本地库到rds恢复_华为云RDS备份导入到本地
  3. tensorflow.GraphDef was modified concurrently during serialization
  4. python样本期望值_用 python 做 z 检验,t 检验
  5. 谭浩强课后题(数组篇)
  6. IntelliJ IDEA 旗舰版(Ultimate) 破解与注册(可以在加载界面显示自己名字)
  7. Three.js中自定义控制几何体的点和面的属性
  8. Winform中使用FastReport实现自定义PDF打印预览
  9. Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
  10. spring系列-注解驱动原理及源码-bean组件注册