C# 我正在使用unity制作一个水平锁定解锁系统 使用UnityEngine; 使用系统集合; 使用UnityEngine.UI; 公共类加载级别:单行为{ 公共按钮b2; 公共按钮b3; void onlevelwasload() { int MyLevel=PlayerPrefs.GetInt(“级别”); 开关(MyLevel){ 案例2:b2.interactiable=true; b2.image.sprite=Resources.Load(“UISprite”); 打破 案例3:b3.interactiable=true; b3.image.sprite=Resources.Load(“UISprite”); 打破 } } }

C# 我正在使用unity制作一个水平锁定解锁系统 使用UnityEngine; 使用系统集合; 使用UnityEngine.UI; 公共类加载级别:单行为{ 公共按钮b2; 公共按钮b3; void onlevelwasload() { int MyLevel=PlayerPrefs.GetInt(“级别”); 开关(MyLevel){ 案例2:b2.interactiable=true; b2.image.sprite=Resources.Load(“UISprite”); 打破 案例3:b3.interactiable=true; b3.image.sprite=Resources.Load(“UISprite”); 打破 } } },c#,unity3d,monodevelop,C#,Unity3d,Monodevelop,我使用playerprefs保存按钮状态,但我遇到一个问题,当解锁第三级按钮3时,按钮2进入锁定状态。奇怪的是,在解锁第三层时,按钮2没有保存。看起来您需要一组按钮,这些按钮将在特定索引下启用。您使用开关编码仅启用一个与级别完全匹配的按钮 using UnityEngine; using System.Collections; using UnityEngine.UI; public class loadlevels : MonoBehaviour { public Button b2; pu

我使用playerprefs保存按钮状态,但我遇到一个问题,当解锁第三级按钮3时,按钮2进入锁定状态。奇怪的是,在解锁第三层时,按钮2没有保存。

看起来您需要一组按钮,这些按钮将在特定索引下启用。您使用
开关编码
仅启用一个与级别完全匹配的按钮

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class loadlevels : MonoBehaviour {
public Button b2;
public Button b3;
void OnLevelWasLoaded()
{

    int MyLevel = PlayerPrefs.GetInt("Level"); 

    switch (MyLevel) {

    case 2: b2.interactable = true; 
        b2.image.sprite = Resources.Load<Sprite> ("UISprite");

        break;

    case 3: b3.interactable = true; 
        b3.image.sprite = Resources.Load<Sprite>("UISprite");
        break;



    }
}
}
公共按钮[]按钮=新按钮[4];
//不要忘记在数组中创建/设置

对于(int-level=0;level这将一次解锁所有级别!?您需要添加
int-myLevel=PlayerPrefs.GetInt(“level”);
我所做的是为每个级别生成一个GetInt,这解决了我的问题!
public Button[] buttons = new Button[4]; 
// don't forget to create / set in array

for( int level = 0; level <= myLevel; level++)
{
   buttons[level].interactable = true; 
   buttons[level].image.sprite = Resources.Load<Sprite> ("UISprite");
 }