按钮组选中状态切换
搞一个项目,里面很多的按钮组每个按钮都对应两个不同的sprite,被选中的按钮显示一类,其他显示另一类。直接用一个脚本来管理状态切换。
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 按钮组切换
/// </summary>
public class MyButtonGroup : MonoBehaviour
{
public Button[] buttons;
public Sprite[] sprites0;
public Sprite[] sprites1;
private int activeButtonIndex = -1;
void Start()
{
for (int i = 0; i < buttons.Length; i++)
{
int buttonIndex = i;
buttons[i].onClick.AddListener(() => OnOneButtonClicked(buttonIndex));
}
}
public void OnOneButtonClicked(int clickedIndex)
{
if (activeButtonIndex != clickedIndex)
{
// 切换按钮图像
if (activeButtonIndex >= 0)
{
buttons[activeButtonIndex].image.sprite = sprites0[activeButtonIndex];
}
buttons[clickedIndex].image.sprite = sprites1[clickedIndex];
activeButtonIndex = clickedIndex;
}
}
}
当然用toogle group也是OK的