Image与Text批量添加UI事件

由于在众多图片或者text上实现点击事件是则需要每一个都添加点击事件,比较麻烦,借鉴别人的EventListener来

复制代码
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events; public class UGUIEventListener : EventTrigger { public UnityAction<GameObject> onClick; //可以重载EventTrigger的其他虚方法来实现点击拖动等事件 public override void OnPointerClick(PointerEventData eventData) { base.OnPointerClick(eventData); if(onClick != null) { onClick(gameObject); } } public static UGUIEventListener Get(GameObject go) { UGUIEventListener listener = go.GetComponent<UGUIEventListener>(); if (!listener) listener = go.AddComponent<UGUIEventListener>(); return listener; } }
复制代码

给text和image添加事件

复制代码
using UnityEngine;
using UnityEngine.UI;

public class UGUIButtonClick : MonoBehaviour { public Text textTitle; public Image imageTitle; private void Awake() { UGUIEventListener.Get(textTitle.gameObject).onClick = OnClick; UGUIEventListener.Get(imageTitle.gameObject).onClick = OnClick; } void OnClick(GameObject go) { if(go == textTitle.gameObject) { Debug.Log("Text clicked"); } else if(go == imageTitle.gameObject) { Debug.Log("Image clicked"); } } }
复制代码

猜你喜欢

转载自www.cnblogs.com/llstart-new0201/p/10267900.html