2015-04-20 1 views
1
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; 



    } 
} 
} 

Я использовал playerprefs для сохранения состояния кнопки, но у меня возникла проблема, когда при разблокировке третьего уровня, который является кнопкой 3, кнопка 2 переходит в состояние блокировки. Странно, что кнопка 2 не сохраняется при разблокировке третьего уровня.Я делаю систему блокировки блокировки уровня, используя единство

ответ

1

Похоже, вам нужен массив кнопок, которые будут включены до определенного индекса. Вы код с switch включает только одну кнопку, которая точно соответствует уровню.

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"); 
} 
+0

это разблокирует все уровни сразу !? –

+1

вам нужно добавить 'int myLevel = PlayerPrefs.GetInt (« Уровень »); ' – DrewJordan

+0

то, что я сделал, делал GetInt для каждого уровня и исправлял мою проблему! –

 Смежные вопросы

  • Нет связанных вопросов^_^