1. 程式人生 > >Unity UGUI點選不同Button執行不同的方法(無參方法)

Unity UGUI點選不同Button執行不同的方法(無參方法)

將指令碼隨意掛在任何位置 但是這個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);
    }
}


效果