Unity 当一个场景中有多个按钮时,怎么编写点击按钮响应事件更合理

南楼画角 提交于 2020-01-04 12:41:53

Unity 当一个场景中有多个按钮时,怎么编写点击按钮响应事件更合理

比较

当场景中有多个很多按钮时,先Public一个Button,然后给这个Button赋值,再编写点击按钮要执行的操作,最后给每个按钮写按钮点击响应事件。当场景中按钮少时可以这样执行,当有很多按钮时,会写到你怀疑人生0.0 。新的方法省去了从脚本声明按钮的方法。
在场景中创建完新按钮后,将size+1,再将按钮拖拽到里面即可
在这里插入图片描述

代码

// ========================================================
// 脚 本 功 能:
// 作 者:CYC 
// 创建时间:2019/12/17 08:53:01
// 版 本:v 1.0
// ========================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SwitchClickBtn : MonoBehaviour {

    public List<Button> buttons = new List<Button>();//创建了一个按钮列表  在场景中创建完按钮后,将按钮拖拽到列表中即可,不要要在脚本中声明按钮
    void Start()
    {
        AddClickEvents();
    }


    void AddClickEvents()
    {
        int x = 0;
        foreach (Button item in buttons)
        {
            int y = x;
            item.onClick.AddListener(() => ClickEvent2(y));//此处用的第二种点击方法
            x++;
        }
    }

    //第一种点击方法
    void ClickEvent1()
    {
        //通过 UnityEngine.EventSystems的底层来获取到当前点击的对象
        var button = UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject;
        //Debug.Log(button.name);
    }
    //第二种点击方法
    void ClickEvent2(int a)
    {
    	//通过判断点击按钮的名字调用相应的方法
        switch (buttons[a].name)
        {
            case "Button1"://这里的Button1是指场景中,按钮的名字
                ClickButton1();
                break;
            case "Button2":
                
                break;
            case "Button3":
                
                break;
            case "Button4":
                
                break;
            default:
                break;
        }
    }
	
	void ClickButton1()
	{
		//ToDo:点击Button1按钮响应事件
	}

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!