unity 动态匹配按钮的点击事件

我们在UI的时候,肯定少不了创建Button,既然是按钮肯定少不了点击事件,如果按钮少了还好说,通过unity面板进行可视化操作就好了,但如果一个UI里面有大量的按钮,一个游戏里有很多重复场景,那么我们在制作UI的时候就会产生大量的重复操作,《代码整洁之道》里有一句话说的很好:重复是万恶之源。代码如此,开发的方方面面都是如此。

跟小伙伴闲聊的时候得知,可以去制作一个按钮的匹配的脚本,创建按钮后去动态的匹配每个按钮的点击事件,本着能偷懒就偷懒的原则,于是琢磨了一番。

思路:在创建Button时,按钮命名要一致,例如所有的开始按钮都叫“Begin”,所有的关闭按钮都叫“Close”,这样我们就可以通过gameObject.name去获取按钮的名字,然后通过这一线索去动态添加点击事件(onClick.AddListener())。

第一步:准备工作


我们在unity中创建好两个Button并命名为“Begin”和“Close”,然后创建脚本UIManager


创建一个Button数组用于存放按钮。


在准备两个点击事件,随意命名只要自己知道就好(口胡)。

第二步:准备数据

每当有这种一一对应的需求的时候,我总是第一时间想起Dictionary


词典的键是string类型的,自然是Button的名字。

词典的值是UnityAction类型的,这是unity封装的一个事件(只有不带参的,如果需要带参的话可以继承之后重写方法)。


这里看不明白的大概需要百度一下委托和事件。

第三步:为按钮匹配点击事件

多个重复性工作怎么办,循环


拿到数组后取Button的名字

取到名字后取词典中取对应的值

取到值后为对应的按钮动态添加点击事件

第四步:搞定收工




猜你喜欢

转载自blog.csdn.net/testiness_wind/article/details/79527824