通过拖拽的方式监听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");
}
}