1. 程式人生 > >Unity使用uGUI動態繫結按鈕事件

Unity使用uGUI動態繫結按鈕事件

適用場景

在這裡插入圖片描述 像這樣的彈窗在遊戲中經常出現,這個彈窗就是一個prefab,但是當不同的場景觸發這個彈窗時,彈窗上的“確定”按鈕觸發的事件是不同的。 因此需要為彈窗按鈕動態繫結事件。

STEP1 在彈窗入口處繫結事件

public void OnXXXBtnClicked() {

	//把彈窗生成出來
	GameObject go = Instantiate(MessageBox, GameObject.Find("Canvas").transform); 
	
	//呼叫掛載在彈窗上的指令碼的函式,獲取彈窗上所有的按鈕,
	Button[] btns = go.getComponent<MessageBoxUI>().getBtns();
	
	//為按鈕動態繫結事件
	btns[0].onClick.AddListener(delegate ()
    {
		//這裡寫該事件的邏輯
		...
    });
}