Unity API UGUI监听事件

通过拖拽的方式监听UGUI的事件

 

通过代码添加对UGUI控件的事件监听

using System;
using UnityEngine;
using UnityEngine.UI;

public class UIEventManager : MonoBehaviour {

    public GameObject btnGameObject;
    public GameObject sliderGameObject;
    public GameObject dropDownGameObject;
    public GameObject toggleGameObject;

	// Use this for initialization
	void Start () {
        btnGameObject.GetComponent<Button>().onClick.AddListener(this.ButtonOnClick);//添加按钮的监听事件
        sliderGameObject.GetComponent<Slider>().onValueChanged.AddListener(this.OnSliderChanged);//添加滑动条的监听事件
        dropDownGameObject.GetComponent<Dropdown>().onValueChanged.AddListener(this.OnDropDownChanged);//添加下拉条的监听事件
        toggleGameObject.GetComponent<Toggle>().onValueChanged.AddListener(this.OnToggleChanged);//添加单选框的监听事件
    }
    //按钮事件
    void ButtonOnClick()
    {
        Debug.Log("ButtonOnClick");
    }
    //滑动条事件
    void OnSliderChanged(float value)
    {
        Debug.Log("SliderChanged:" + value);
    }
    //下拉条事件
    void OnDropDownChanged(Int32 value)
    {
        Debug.Log("DropDownChanged:" + value);
    }
    //单选框事件
    void OnToggleChanged(bool value)
    {
        Debug.Log("ToggleChanged:" + value);
    }

    // Update is called once per frame
    void Update () {
		
	}
}

跟鼠标相关的事件接口的实现

查看相关接口

必须勾上此选项。

IPointerDownHandler

鼠标按下

IPointerClickHandler

鼠标点击

IPointerUpHandler

鼠标抬起

IPointerEnterHandler

鼠标移上

IPointerExitHandler

鼠标移出

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System;
//interface

public class UIEventManager2 : MonoBehaviour
    , IPointerDownHandler//鼠标按下
    , IPointerClickHandler//鼠标点击
    , IPointerUpHandler//鼠标抬起
    , IPointerEnterHandler//鼠标移上
    , IPointerExitHandler//鼠标移出{
    
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("OnPointerClick");
    }

    public void OnPointerDown(PointerEventData eventData)
    {
        Debug.Log("OnPointerDown");
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("OnPointerEnter");
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("OnPointerExit");
    }

    public void OnPointerUp(PointerEventData eventData)
    {
        Debug.Log("OnPointerUp");
    }
}

跟拖拽相关的事件接口的实现

IBeginDragHandler

开始拖拽

IDragHandler

拖拽中

IEndDragHandler

拖拽结束

IDropHandler

拖拽完成后在对象上抬起鼠标时触发

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System;
//interface

public class UIEventManager2 : MonoBehaviour
    ,IBeginDragHandler//开始拖拽
    ,IDragHandler //拖拽中
    ,IEndDragHandler //拖拽结束
    ,IDropHandler //拖拽完成后在对象上抬起鼠标时触发
{
    public void OnBeginDrag(PointerEventData eventData)
    {
        Debug.Log("OnBeginDrag");
    }

    public void OnDrag(PointerEventData eventData)
    {
        Debug.Log("OnDrag");
    }

    public void OnDrop(PointerEventData eventData)
    {
        Debug.Log("OnDrop");
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        Debug.Log("OnEndDrag");
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值