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”); 打破 } } }
我使用playerprefs保存按钮状态,但我遇到一个问题,当解锁第三级按钮3时,按钮2进入锁定状态。奇怪的是,在解锁第三层时,按钮2没有保存。看起来您需要一组按钮,这些按钮将在特定索引下启用。您使用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
开关编码
仅启用一个与级别完全匹配的按钮
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");
}