public void ShowLevels() { if (!ProgressManager.Instance.IsCategoryUnlocked(currentCategory)) { return; } Category category = categories[currentCategory]; //currentCategoryLevelsText.text = "Niveles - " + category.name_id; //selectedCategoryNameLocaliced.Arguments = new object[] { selectedLevelName }; currentCategoryLevelsTextLocalized.StringReference = selectedCategoryNameLocaliced[currentCategory]; currentCategoryLevelsTextLocalized.RefreshString(); categoriesPanel.SetActive(false); levelsPanel.SetActive(true); currentCategoryPanel.SetActive(false); currentLevelPanel.SetActive(true); while (levelsParent.transform.childCount != 0) { DestroyImmediate(levelsParent.transform.GetChild(0).gameObject); } for (int i = 0; i < category.levels.Count; i++) { int index = i; LevelData levelData = category.levels[i]; LevelCard levelCard = Instantiate(levelCardPrefab, levelsParent.transform); levelCard.ConfigureLevel(levelData, category, i + 1); if (ProgressManager.Instance.IsLevelUnlocked(currentCategory, i)) { levelCard.button.onClick.AddListener(() => { currentLevel = index; localizedLevelName.StringReference = levelData.levelNameLocalized; localizedLevelName.RefreshString(); //levelName.text = levelData.levelName; levelPreview.sprite = levelData.levelPreview; levelCard.button.Select(); }); levelCard.button.onClick.Invoke(); } else { levelCard.DeactivateCard(); } } TraceScreenAccesed(); }