【Unity】场景所有Button添加点击事件

算是一个扩展,游戏中很多按键都会有点击音效,因为按键太多,如果每个按键都手动绑定或者代码绑定监听事件,都比较繁琐,而且容易遗漏。
我的做法是获取场景中所有的Button,统一添加监听事件不需要单独添加音效事件。
待实现功能:

  1. 如果不同的按键有不同的点击音效,可以在命名上做一下区分,添加一个后缀,在统一添加监听事件时,根据不同的后缀名,来绑定不同事件。
  2. 如果场景中按键较多,可以利用协程,分批次进行处理,将运算量分散。
  3. 如果有动态加载的按键Object,现有2个方案可供参考(未实际测试,只是一个设想),一是直接获取Prefab添加监听事件,二是在动态加载的过程中,判断是否有Button组件,有则添加事件。
    目前先实现基础功能,项目中可根据实际情况,继续扩展 ··· ···
 void GetAllButtonAddListener()
        {
            //获取场景所有物体
            GameObject[] allObj = Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[];
            int btnCount = 0;
            Button tmpButton;
            for (int i = 0; i < allObj.Length; i++)
            {
                tmpButton = allObj[i].GetComponent

你可能感兴趣的:(工具)