您的位置:首页 > 产品设计 > UI/UE

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

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: