unity 动态匹配按钮的点击事件
2018-03-12 15:57
204 查看
我们在UI的时候,肯定少不了创建Button,既然是按钮肯定少不了点击事件,如果按钮少了还好说,通过unity面板进行可视化操作就好了,但如果一个UI里面有大量的按钮,一个游戏里有很多重复场景,那么我们在制作UI的时候就会产生大量的重复操作,《代码整洁之道》里有一句话说的很好:重复是万恶之源。代码如此,开发的方方面面都是如此。
跟小伙伴闲聊的时候得知,可以去制作一个按钮的匹配的脚本,创建按钮后去动态的匹配每个按钮的点击事件,本着能偷懒就偷懒的原则,于是琢磨了一番。
思路:在创建Button时,按钮命名要一致,例如所有的开始按钮都叫“Begin”,所有的关闭按钮都叫“Close”,这样我们就可以通过gameObject.name去获取按钮的名字,然后通过这一线索去动态添加点击事件(onClick.AddListener())。
我们在unity中创建好两个Button并命名为“Begin”和“Close”,然后创建脚本UIManager
创建一个Button数组用于存放按钮。
在准备两个点击事件,随意命名只要自己知道就好(口胡)。
词典的键是string类型的,自然是Button的名字。
词典的值是UnityAction类型的,这是unity封装的一个事件(只有不带参的,如果需要带参的话可以继承之后重写方法)。
这里看不明白的大概需要百度一下委托和事件。
拿到数组后取Button的名字
取到名字后取词典中取对应的值
取到值后为对应的按钮动态添加点击事件
跟小伙伴闲聊的时候得知,可以去制作一个按钮的匹配的脚本,创建按钮后去动态的匹配每个按钮的点击事件,本着能偷懒就偷懒的原则,于是琢磨了一番。
思路:在创建Button时,按钮命名要一致,例如所有的开始按钮都叫“Begin”,所有的关闭按钮都叫“Close”,这样我们就可以通过gameObject.name去获取按钮的名字,然后通过这一线索去动态添加点击事件(onClick.AddListener())。
第一步:准备工作
我们在unity中创建好两个Button并命名为“Begin”和“Close”,然后创建脚本UIManager
创建一个Button数组用于存放按钮。
在准备两个点击事件,随意命名只要自己知道就好(口胡)。
第二步:准备数据
每当有这种一一对应的需求的时候,我总是第一时间想起Dictionary词典的键是string类型的,自然是Button的名字。
词典的值是UnityAction类型的,这是unity封装的一个事件(只有不带参的,如果需要带参的话可以继承之后重写方法)。
这里看不明白的大概需要百度一下委托和事件。
第三步:为按钮匹配点击事件
多个重复性工作怎么办,循环拿到数组后取Button的名字
取到名字后取词典中取对应的值
取到值后为对应的按钮动态添加点击事件
第四步:搞定收工
相关文章推荐
- 【Unity】UGUI怎么动态的添加按钮的OnClick点击事件
- Android列表动态绑定按钮点击事件
- unity 点击事件 点击 按钮还是屏幕
- javascript动态生成按钮并绑定点击事件
- 在一个消息响应函数中响应多个动态生成的按钮点击事件
- Unity不点击按钮执行按钮点击事件
- ios 动态添加了按钮,绑定同一个点击事件,如何判断点击的是哪个?
- iOS--- 动态添加了按钮,绑定同一个点击事件,如何判断点击的是哪个?
- Unity UGUI按钮动态添加点击事件
- Unity用代码给按钮添加点击事件
- 如何动态修改输入法键盘红色框中(右下角)的文字,以及 如何监听右下角按钮的点击事件?
- ios 给不同按钮,动态绑定同一个点击事件,判断当前点击的按钮
- jquery live方法,解决jquery动态添加按钮无法触发点击事件的问题
- 通过按钮点击触发事件实现动态扣血
- ajax动态加载页面,对页面的按钮绑定点击事件
- Unity_DOTween动画的学习(十一)_DOTweenPath路径编辑器的使用补充_结合按钮触发不同点击事件控制播放状态_Waypoints
- 开发中遇到的问题-动态创建按钮并且添加带有参数的点击事件
- Unity 按钮(Button)的点击事件中 获取自身属性
- [VB.NET]为ToolStrip动态加入的按钮怎么写点击事件?
- 在一个消息响应函数中响应多个动态生成的按钮点击事件