unity游戏关卡解锁和未解锁时的不同图片以及可或不可按下

若想让按钮不可按只要将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文件夹则自己在根处创建一个
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_19829077/article/details/130429893