在我的项目中,我有一个网格布局组,其中包含按钮。每个按钮代表一个玩家可以选择启动的等级。当我加载场景时,玩家必须选择关卡,我想禁用并重新着色代表锁定关卡的所有按钮。 我正在使用以下代码执行此操作:
public Button[] levelButtons;
int levelReached = 1;
for (int i = levelReached; i < levelButtons.Length; i++) {
levelButtons[i].interactable = false;
levelButtons[i].image.color = Color.red;
}
出于某种原因,他总是重新定义第一个按钮(levelButton [0]),但是改变了所有其他按钮上的交互作用(levelButton 1到levelButton [levelButton.length])。 Example
为什么Unity表现得那样,我如何重新着色正确的按钮?
我似乎找不到解决问题的方法,也没找到任何相关的主题。 任何帮助将不胜感激。
答案 0 :(得分:0)
以下代码是正确的:
public Button[] levelButtons;
int levelReached = 1;
for (int i = levelReached; i < levelButtons.Length; i++) {
levelButtons[i].interactable = false;
levelButtons[i].GetComponent<Image>().color = Color.red;
}