uGUI事件监听

来源:互联网 发布:淘宝网ang卫衣 编辑:程序博客网 时间:2024/05/22 05:23

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);
    }
}


0 0
原创粉丝点击