using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class UGUIEventListener : UnityEngine.EventSystems.EventTrigger
{
public UnityAction<GameObject> onClick;
public override void OnPointerClick(PointerEventData eventData)
{
base.OnPointerClick(eventData);
if (onClick != null)
onClick(gameObject);
}
/// <summary>
/// 获取或添加UGUIEventListener脚本来实现对游戏对象的监听
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public static UGUIEventListener Get(GameObject go)
{
UGUIEventListener listener = go.GetComponent<UGUIEventListener>();
if (listener == null)
listener = go.AddComponent<UGUIEventListener>();
return listener;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Script_05_07 : MonoBehaviour
{
public Button button1;
public Button button2;
public Text text;
public Image image;
private void Awake()
{
button1.onClick.AddListener(delegate () { onClick(button1.gameObject); });
button2.onClick.AddListener(delegate () { onClick(button2.gameObject); });
UGUIEventListener.Get(text.gameObject).onClick=onClick;
UGUIEventListener.Get(image.gameObject).onClick = onClick;
}
public void onClick(GameObject go)
{
if (go == button1.gameObject)
{
Debug.Log("点击按钮1");
}else if (go == button2.gameObject)
{
Debug.Log("点击按钮2");
}
else if (go == text.gameObject)
{
Debug.Log("点击文本");
}
else if(go==image.gameObject)
{
Debug.Log("点击图片");
}
}
}