适用场景
像这样的弹窗在游戏中经常出现,这个弹窗就是一个prefab,但是当不同的场景触发这个弹窗时,弹窗上的“确定”按钮触发的事件是不同的。
因此需要为弹窗按钮动态绑定事件。
STEP1 在弹窗入口处绑定事件
public void OnXXXBtnClicked() {
//把弹窗生成出来
GameObject go = Instantiate(MessageBox, GameObject.Find("Canvas").transform);
//调用挂载在弹窗上的脚本的函数,获取弹窗上所有的按钮,
Button[] btns = go.getComponent<MessageBoxUI>().getBtns();
//为按钮动态绑定事件
btns[0].onClick.AddListener(delegate ()
{
//这里写该事件的逻辑
...
});
}