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("點擊圖片");
}
}
}