UGUI点击事件的几种代码添加方式
2016-10-31 23:16
295 查看
说明:
UGUI一般对Button等添加点击事件等时,往往会涉及到使用将脚本与Button相挂接的方式,今天介绍几种不需要挂接的方式,直接由代码与之产生相对应的效果。。。方法一:
使用GetComponent<Button>().onClick.AddListener方法添加事件监听器:public GameObject btnTest1; void Start() { btnTest1.GetComponent<Button>().onClick.AddListener(delegate () { Debug.Log("Click1111"); }); }
常见类型:
GetComponent<Button>().onClick.AddListener(delegate () { OnClickEvent(itemImg[i]._Obj); }); } } void OnClickEvent(GameObject Obj) { }
方法二:
和方法一是同一种方法(对不太懂事件委托的大兄弟们随便了解一下),只是将所监听的事件由外部函数传递而来:public GameObject btnTest2;public GameObject btnTest3;void Start(){btnTest2.GetComponent<Button>().onClick.AddListener(btnClick2);}void btnClick2(){Debug.Log("Click2222");}
方法三:
自定义了一个类继承EventTrigger,并重写其中的部分所需要的方法(目的延伸UGUI中各种事件):UGUI所提供的EventTrigger如下所示:重写的好处在于,可以实现UGUI提供的Onclick事件之外的事件如:OnPointDown(按下事件)、OnPointExit(抬起事件)等一系列,可根据自己需求获取。如下面所示:using UnityEngine;using System.Collections;using UnityEngine.EventSystems;public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger{public delegate void VoidDelegate();public VoidDelegate onClick;static public EventTriggerListener Get(Transform transform){EventTriggerListener listener = transform.GetComponent<EventTriggerListener>();if (listener == null)listener = transform.gameObject.AddComponent<EventTriggerListener>();return listener;}public override void OnPointerClick(PointerEventData eventData){if (onClick != null)onClick();}}测试点击事件如下:
public GameObject btnTest3;void Start(){EventTriggerListener.Get(btnTest3.transform).onClick += btnClick3;}void btnClick3(){Debug.Log("Click3333");}
整体测试如下:
相关文章推荐
- ugui 添加事件的几种方式
- 对象事件与处理程序代码进行关联的几种方式
- Android为Button按钮添加监听事件的几种方式
- Android之Button点击事件处理的几种方式
- 关于在c#中创建用户控件后,winform应用程序在调用中无法通过点击用户控件的子控件为其自动添加事件代码的问题
- 【Android】利用Java代码布局,按钮添加点击事件
- LinearLayout 点击事件 添加点击事件代码
- 【Unity】UGUI怎么动态的添加按钮的OnClick点击事件
- android——给ListView添加点击事件的三种方式
- ugui使用代码动态添加Button.OnClick()事件
- unity5 ugui 新gui 按钮事件添加 及 代码添加 事件
- ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
- 学习Android之第一个小程序及点击事件的几种方式
- uGUI使用代码动态添加Button.OnClick()事件(Unity3D开发之十二)
- 安卓笔记android中控件点击事件实现的几种方式
- jQuery添加options点击事件并传值实例代码
- UGUI代码添加带参数的Button事件
- swift按钮通过代码添加点击事件时出现unrecognized selector sent to instance 0x136ea5010错误