若想让按钮不可按只要将interactable的勾勾关掉就可以了(一般用做未解锁的关卡)
public void UpdateOnce() //用于更新过关数
{
/* 没解锁的抑制 */
for(int i = 0;i<levelSelectButton.Length;i++){
levelSelectButton[i].interactable = false;
//获得button组件
Button mButton = levelSelectButton[i].GetComponent<Button>();
//将锁定的图片换上
mButton.image.sprite = Resources.Load<Sprite>("lock");
}
/* 解锁了的开放 */
for(int i = 0;i < unlockedLevelIndex;i++){
//最后要把18删掉 加18是为了让所有关卡都可以打开
levelSelectButton[i].interactable = true;
//Debug.Log("第"+levelSelectButton[i]+"关卡已解锁");
//获得button组件
Button mButton = levelSelectButton[i].GetComponent<Button>();
//将锁定的图片换上
mButton.image.sprite = Resources.Load<Sprite>("unlock");
}
PlayerPrefs.GetInt("modleAmount",levelSelectButton.Length); //获得总共关卡数,用于隐藏modle
}
代码中的**GameObject.interactable = true;**这个就是让按钮重新激活的按钮
代码中的mButton.image.sprite = Resources.Load(“lock”);是换图片的操作,其中mButton也是GameObject类型,"lock"是图片名,存在Resources文件夹中,如果没有Resources文件夹则自己在根处创建一个