比较
当场景中有多个很多按钮时,先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按钮响应事件
}
}
来源:CSDN
作者:柚子味的小柠檬
链接:https://blog.csdn.net/qq_43511290/article/details/103829484