UI事件管理

Copy
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; } }
Copy
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("点击图片"); } } }
posted @   小帆敲代码  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示