在列表中只启用一个按钮?(unity3D)

本文关键字:一个 按钮 unity3D 列表 启用 | 更新日期: 2023-09-27 18:05:53

我有一个代码,每次我按下保存时都会生成一个预置的按钮(游戏对象)。这个按钮被保存到一个游戏对象列表中,然后我用它来选择或取消选择它们。

我试图使它,以便只有一个按钮在列表中可以被选中的时间。在某种程度上,如果我在当前选中的按钮之前按下按钮,它就会起作用。但是如果我在当前选中的按钮之后按下任何按钮,它将无法取消选中。

有谁能帮我一下吗?
public List<GameObject> presetButtons = new List<GameObject>() ;

这是按钮列表

void Update () {
        for (int i = 0; i < presetButtons.Count; i++) {
            if(presetButtons[i].GetComponent<CamUIButtonHandler>().isSelected){
                indicator = i;
                topView.isSelected = false;
            }
        }
        for (int u = 0; u < presetButtons.Count; u++) {
            if(u != indicator)
                presetButtons[u].GetComponent<CamUIButtonHandler>().isSelected = false;
        }

}

一旦选择1,应该停用其他按钮。我猜有一些东西导致它无法覆盖当前选择的按钮,但我似乎找不到这个问题。有人能帮我一下吗?谢谢

在列表中只启用一个按钮?(unity3D)

这听起来像是使用UGUI的Toggle和ToggleGroup功能的好地方。在每个按钮上放置一个切换组件。然后将这些按钮的组属性设置为相同的ToggleGroup。当然,如果你不使用UGUI,那么这是不可能的。