public Button[] btns;
public Sprite Normal;
public Sprite Highlight;
// Use this for initialization
void Start () {
for (int i = 0; i < btns.Length; i++)
{
int index = i;
btns[i].onClick.AddListener(delegate ()
{
btnOnClick(index);
});
}
}
public void btnOnClick(int index)
{
//循环先把按钮重置
for (int i = 0; i < btns.Length; i++)
{
btns[i].image.sprite = Normal;//重置为普通图片
btns[i].gameObject.GetComponentInChildren<Text>().color = Color.white;//按钮字变白
}
btns[index].image.sprite = Highlight;
btns[index].gameObject.GetComponentInChildren<Text>().color = Color.yellow;//按钮字变黄
}
上述代码通过绑定多个带参数的按钮事件,实现了一组按钮当点击的时候重置其他按钮,点击按钮变色的功能。