将脚本随意挂在任何位置 但是这个btnParent一定是 按钮的父节点
脚本很简单自己敲一遍就全都明白了
上脚本 OnClickTest
using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class OnClickTest : MonoBehaviour { //所有Button的父节点 public Transform btnParent; private Button[] btns; void Start () { //初始化数组长度 btns = new Button[btnParent.childCount]; //便利父节点下所有的按钮 for (int i = 0; i < btns.Length; i++) { //赋值按钮 btns[i] = btnParent.GetChild(i).GetComponent<Button>(); //为按钮添加点击事件 btns[i].onClick.AddListener(OnClick); } } /// <summary> /// 按钮点击事件 /// </summary> private void OnClick() { //按下时 判断当前点击的按钮的名字 string btnName = EventSystem.current.currentSelectedGameObject.GetComponent<Button>().name; print("当前按钮是: " + btnName); } }
效果