uGUI事件监听
2016-02-18 14:43
295 查看
ugui鼠标经过,鼠标离开 第一部分放在一个脚本中,放进去不用管 第二部分放在一个脚本中,这是要用的,放在要改变的物体上
第一个脚本
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger{
public delegate void VoidDelegate (GameObject go);
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 (GameObject go)
{
EventTriggerListener listener = go.GetComponent<EventTriggerListener>();
if (listener == null) listener = go.AddComponent<EventTriggerListener>();
return listener;
}
public override void OnPointerClick(PointerEventData eventData)
{
if(onClick != null)
onClick(gameObject);
}
public override void OnPointerDown (PointerEventData eventData){
if(onDown != null) onDown(gameObject);
}
public override void OnPointerEnter (PointerEventData eventData){
if(onEnter != null) onEnter(gameObject);
}
public override void OnPointerExit (PointerEventData eventData){
if(onExit != null) onExit(gameObject);
}
public override void OnPointerUp (PointerEventData eventData){
if(onUp != null) onUp(gameObject);
}
public override void OnSelect (BaseEventData eventData){
if(onSelect != null) onSelect(gameObject);
}
public override void OnUpdateSelected (BaseEventData eventData){
if(onUpdateSelect != null) onUpdateSelect(gameObject);
}
}
第二个脚本
using UnityEngine;
using System.Collections;
public class ButonChange : MonoBehaviour {
public GameObject button;
void Start () {
EventTriggerListener.Get(button).onEnter = OnMouseEnter;
EventTriggerListener.Get(button).onExit = OnMouseExit;
EventTriggerListener.Get(button).onClick = OnClick;
}
void OnMouseEnter(GameObject go) //鼠标经过
{
if (go.name == "Button")
transform.localScale = new Vector3(2, 2, 2);
}
void OnMouseExit(GameObject go)//鼠标离开
{
if (go.name == "Button")
transform.localScale = new Vector3(1, 1,1);
}
void OnClick(GameObject go) //鼠标按下
{
if (go.name == "Button")
transform.localScale = new Vector3(3,3,3);
}
}
第一个脚本
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger{
public delegate void VoidDelegate (GameObject go);
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 (GameObject go)
{
EventTriggerListener listener = go.GetComponent<EventTriggerListener>();
if (listener == null) listener = go.AddComponent<EventTriggerListener>();
return listener;
}
public override void OnPointerClick(PointerEventData eventData)
{
if(onClick != null)
onClick(gameObject);
}
public override void OnPointerDown (PointerEventData eventData){
if(onDown != null) onDown(gameObject);
}
public override void OnPointerEnter (PointerEventData eventData){
if(onEnter != null) onEnter(gameObject);
}
public override void OnPointerExit (PointerEventData eventData){
if(onExit != null) onExit(gameObject);
}
public override void OnPointerUp (PointerEventData eventData){
if(onUp != null) onUp(gameObject);
}
public override void OnSelect (BaseEventData eventData){
if(onSelect != null) onSelect(gameObject);
}
public override void OnUpdateSelected (BaseEventData eventData){
if(onUpdateSelect != null) onUpdateSelect(gameObject);
}
}
第二个脚本
using UnityEngine;
using System.Collections;
public class ButonChange : MonoBehaviour {
public GameObject button;
void Start () {
EventTriggerListener.Get(button).onEnter = OnMouseEnter;
EventTriggerListener.Get(button).onExit = OnMouseExit;
EventTriggerListener.Get(button).onClick = OnClick;
}
void OnMouseEnter(GameObject go) //鼠标经过
{
if (go.name == "Button")
transform.localScale = new Vector3(2, 2, 2);
}
void OnMouseExit(GameObject go)//鼠标离开
{
if (go.name == "Button")
transform.localScale = new Vector3(1, 1,1);
}
void OnClick(GameObject go) //鼠标按下
{
if (go.name == "Button")
transform.localScale = new Vector3(3,3,3);
}
}
相关文章推荐
- easyui dialog 有滚动条时的窗口定位
- EasyUI datagrid默认勾选checkbox时注意事项
- Java线程(篇外篇):阻塞队列BlockingQueue
- UIScrollView头文件学习
- Android常用UI控件 ViewGroup
- GDB watch if var !=value
- Badboy中创建Suite, test, step和Template
- Java对象的强、软、弱和虚引用原理+结合ReferenceQueue对象构造Java对象的高速缓存器
- ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法(去掉15px空白间距)
- HUST 1358 Uiwurerirexb jeqvad(模拟解密)
- iOS学习笔记(十三)——获取手机信息(UIDevice、NSBundle、NSLocale)
- Value '0000-00-00' can not be represented as java.sql.Date解决办法
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
- 1041. Be Unique (20)
- UIAlertView使用全解
- Include and Require
- UIImagePickerController(相册的使用)
- HUST 1358 Uiwurerirexb jeqvad
- UITableView显示不全