UIEventListener.cs 对一些常用的事件进行了封装和继承。
  一,常用事件:
  void OnClick ():点击事件;

  void OnDoubleClick ():二次或多次点击事件

  void OnHover (bool isOver):手指覆盖事件;

  void OnPress (bool isPressed):手指点击事件,包含按下、抬起;isPressed为按下,false为抬起;

  void OnSelect (bool selected):是否被选择;

  void OnDrag (Vector2 delta):手指滑动事件;

  void OnKey (KeyCode key):“键”事件;

  二,实质:

  这些监听事件都是建立在委托事件上:

  publicdelegatevoid BoolDelegate (GameObject go, bool state);

  public BoolDelegate onPress;

  三,前提条件:

  UIEventListener的GameObejct包含Colllider;

  四,怎使用:

  1,静态关联方法:

  UIEventListener.Get(GameObject).OnPress += pressList;

  2,直接重写:

  脚本所在的GameObject包含Colllider,直接重写监听事件:

  publicclass SceneTwo : MonoBehaviour {

  void OnPress (bool pressed)

  {

  Debug.Log(“OnPress ”+enabled+“   ”+NGUITools.GetActive(gameObject)+“   ”+pressed);

  if (enabled && NGUITools.GetActive(gameObject))

  {

  }

  }

  void OnDrag (Vector2 delta)

  {

  Debug.Log(“OnDrag ”+enabled+“   ”+NGUITools.GetActive(gameObject)+“   ”+delta);

  if (enabled && NGUITools.GetActive(gameObject))

  {

  }

  }
 }

//Demo1

using UnityEngine;
using System.Collections;

public class EventTriggerTest : MonoBehaviour {

public  GameObject button;

// Use this for initialization
    void Start () {
    
        UIEventTrigger ue = button.AddComponent <UIEventTrigger> ();
        ue.onRelease.Add (new EventDelegate (this, "ReleasedButton"));
        ue.onPress.Add (new EventDelegate (this,"PressButton"));
        ue.onClick.Add(new EventDelegate(this,"MyClick") );

ue.onPress [0].parameters [0] = new EventDelegate.Parameter ();
        ue.onPress [0].parameters [0].obj = button;
        ue.onClick [0].parameters [0] = new EventDelegate.Parameter ();
        ue.onClick [0].parameters [0].obj = button;

}
    
    // Update is called once per frame
    void Update () {
    
    }

void MyClick(GameObject obj){
        print (obj.name+" : "+"click");
    }

void PressButton(GameObject obj){
    
        print (obj.name+" : "+"pressButton");
    }

void ReleasedButton(GameObject  obj){
    
        print (obj.name+" : "+"ReleasedButton");
    }
}

//Demo2

public class EventListener : MonoBehaviour {

// Use this for initialization
    void Start () {

foreach (Transform item in transform ){
            UIEventListener.Get (item .gameObject ).onClick = MyClick;
        }
    }
    
    // Update is called once per frame
    void Update () {
    
    }

void MyClick(GameObject obj){
        print (obj.name+" : "+"click");
    }

}

UNITY之EventTrigger,EventListener相关推荐

  1. Unity 基于EventTrigger的UI事件系统

    一.主要思路 其实主要原理就是通过继承EventTrigger并重写相应的函数实现的,只是对其做了一个封装,更方便使用了: 当对某个GameObject使用UIEventManager.Get()函数 ...

  2. (四)Trigger

    在游戏物体上可以添加Trigger组件,它与unity的eventTrigger类似,但功能更复杂详细. 在游戏物体上田间Trigger,并通过add new event来添加相关功能,如下图所示,添 ...

  3. 九宫格拼图游戏设计,及代码时序问题解决

    目录 1. 需求简述 2. 大方向思路 3. 具体实现思路 4. 问题描述 5. 问题解决 1. 需求简述 需求是一个九宫格拼图的游戏,每两张图都可以随意对换,当拖动图片经过被交换图片时,拖动图片不动 ...

  4. EasyTouch_Trigger

    在游戏物体上可以添加Trigger组件,它与unity的eventTrigger类似,但功能更复杂详细. 在游戏物体上添加Trigger,并通过add new event来添加相关功能,如下图所示,添 ...

  5. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用原型链和EventTrigger

    原型链是JS的必备,作为ECMAScript4,原型链也是支持的. 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的情况下使用. 本文旨在介绍如何使用原型链 ...

  6. Unity碰撞体不碰撞以及代码添加EventTrigger事件

    文章目录 前言 一.同类型物体的碰撞体不发生碰撞 二.代码控制EventTrigger添加事件 总结 前言 本文所记内容有两点: 一.同类型物体的碰撞体不发生碰撞. 二.代码控制EventTrigge ...

  7. unity | EventTrigger(Button按钮按下、抬起等时执行的方法)

    一.常用按钮 按钮组件一般只有当点击时,执行的方法. 点击:需要按下再起来 二.按钮的其他用法 但有时候,我们可能只需要按下的时候执行,或者抬起的时候执行,这时需要在加入按钮组件的时候,再加一个 &l ...

  8. Unity EventTrigger

    一.相关知识 查看Button的源代码可以发现,就只有onClick而已,如果想要添加其它事件就必须使用EventSystem.EventTrigger和delegate(代理) EventTrigg ...

  9. 【Unity实用小知识点】实现按钮长按功能(用EventTrigger实现)

    在一些游戏中可能需要一些按钮长按的功能,但在EventTrigger找了找貌似没有代表长按的功能.感觉EventTrigger通过Down和Up可以实现,就尝试了下. 长按简单小例子 实现点击和长按并 ...

最新文章

  1. Python爬虫之诗歌接龙
  2. 2018年3月29日笔记
  3. 华为云计算——FusionCompute创建虚拟机
  4. 用c语言实现蚂蚁算法,rsa算法的c语言实现
  5. oracle job 定时执行参数
  6. java终结方法_Java终结任务:Callable和Future
  7. 压测学习总结(7)——Jmeter性能测试之脚本增强
  8. AVL树(Java实现)
  9. 怎么删除计算机c盘应用,C盘垃圾文件怎么删除,清理系统盘的电脑软件-腾讯电脑管家...
  10. C语言 PTA 新年倒计时
  11. android qq协议分析工具,分析Androidqq协议之收到qq群消息
  12. 模拟鼠标键盘操作,含硬件模拟技术。
  13. AI芯片:寒武纪ShiDianNao结构分析
  14. txt文件更改成java文件
  15. 未来五年 LED智慧透明屏未来3大发展趋势
  16. 认识LTE(七):LTE中的两种无反馈模式:发射分集(TM2)和开环空分复用(TM3)
  17. 谁是远程界的天花板?2023年5款最常用的远程软件横测:ToDesk、向日葵、TeamViewer、Splashtop、AnyDesk
  18. NodeJS 与第三方模块 mysql(基本操作)
  19. 计算机毕业设计ssm车辆违规信息管理系统
  20. RPG Maker XP游戏制作方法(七)

热门文章

  1. 攻防世界-baby_web详解
  2. VMware的更新怎么这么恶心
  3. CentOS7.x配置三线策略路由
  4. ubuntu etc 设置权限777带来的问题
  5. Dcloud安卓离线打包
  6. Android Q 适配,看这篇就妥了
  7. 【附源码】Python计算机毕业设计社团管理系统
  8. 数据结构-树与深度优先遍历
  9. 京东直租瞄准租房痛点,重新定义房屋租赁行业新标准!
  10. python怎么接单子平台有哪些_17个Python接私活的平台,总有适合你的,有技术就有收入...