将脚本随意挂在任何位置 但是这个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);
}
}
效果