在列表中只启用一个按钮?(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,应该停用其他按钮。我猜有一些东西导致它无法覆盖当前选择的按钮,但我似乎找不到这个问题。有人能帮我一下吗?谢谢
这听起来像是使用UGUI的Toggle和ToggleGroup功能的好地方。在每个按钮上放置一个切换组件。然后将这些按钮的组属性设置为相同的ToggleGroup。当然,如果你不使用UGUI,那么这是不可能的。