Unity3d中EventTrigger的封装
来源:互联网 发布:闻喜天际网络 编辑:程序博客网 时间:2024/06/13 00:26
因为unity中新增的UGUI中的Button只有onClick事件,但如果想要丰富Button的点击事件,就要使用到EventTrigger,
但是自带的用着不方便,所以就对他进行了封装。
废话不多说,上代码:
自定义了一个类继承自上面提到的:EventTrigger
using UnityEngine;using System.Collections;using UnityEngine.EventSystems;public class EventTriggerListener: UnityEngine.EventSystems.EventTrigger{public delegate void VoidDelegate();public delegate void BoolDelegate(bool state);public delegate void FloatDelegate(float delta);public delegate void VectorDelegate(Vector2 delta);public delegate void ObjectDelegate(GameObject obj);public delegate void KeyCodeDelegate(KeyCode key);public VoidDelegate onClick;public VoidDelegate onDown;public VoidDelegate onEnter;public VoidDelegate onExit;public VoidDelegate onUp;public VoidDelegate onSelect;public VoidDelegate onUpdateSelect;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 override void OnPointerDown(PointerEventData eventData){if (onDown != null) onDown();}public override void OnPointerEnter(PointerEventData eventData){if (onEnter != null) onEnter();}public override void OnPointerExit(PointerEventData eventData){if (onExit != null) onExit();}public override void OnPointerUp(PointerEventData eventData){if (onUp != null) onUp();}public override void OnSelect(BaseEventData eventData){if (onSelect != null) onSelect();}public override void OnUpdateSelected(BaseEventData eventData){if (onUpdateSelect != null) onUpdateSelect();}}
下面是代码的使用:
public Button click;void Start () {EventTriggerListener.Get(click.transform).onClick += Click;EventTriggerListener.Get(click.transform).onDown += ClickDela;}public void Click (){bar = this.GetComponent<Scrollbar>();bar.value = 1;}public void ClickDela(){bar = this.GetComponent<Scrollbar>();bar.value = 0.5f;}
http://www.taikr.com/article/182
0 0
- Unity3d中EventTrigger的封装
- 如何得到WPF中控件绑定的EventTrigger
- EventTrigger
- Unity3d中调用C/C++封装的DLL
- Unity3D之Button的封装
- 【Unity3D 5.6版本使用(2)】Unity5中WebGL平台封装的一些技巧 (转载)
- unity3d的物件旋转功能简单封装~
- [Unity3d]调用自己封装的dll
- unity3d之checkbox控件的封装
- Unity3D Debug类的封装问题
- [Unity3d]调用自己封装的dll
- Unity3d将程式码封装的办法
- Unity3D调用自己封装的dll
- Unity3D调用自己封装的dll
- Unity3D 封装自己的Debug类库dll
- 基于事件触发的开源框架EventTrigger
- Unity3d 封装字段并在Inspector中显示
- <Unity3D>Unity3D中LineRenderer的使用
- ORA-12154: TNS: 无法解析指定的连接标识符
- linux常用命令----操作系统
- chrome皮肤编写教材
- Python中使用中文出现UnicodeDecodeError的原理和解决方法
- jsoncpp的简单应用
- Unity3d中EventTrigger的封装
- gdhjtkykuw74574yryhrt
- @property中retain assign copy详解
- leetcode练习题目
- struts Action获取表单的几种方式
- fjhgkhyluto47ie56utyut
- Android - 禁止Gridview滚动
- openmp,mpi和pthread的差别
- C#操作openoffice writer文档