void Start() { // Caminho padrão do local de save dataPath = SaveManager.dataPath; // Usado para contar quantos slots de save estão sendo usados int slotsUsados = SaveManager.slotsListSize; // Percorre todos os possíveis save slots for (int i = 0; i < SaveManager.slotsListSize; i++) { // Verifica se o slot está sendo usado (não está na lista) if (System.IO.File.Exists(dataPath + "/listaDeSlots.json") && !SlotsListManager.CheckSameNumber(i, SaveManager.list)) { // Instancia o botão loadSlotButton = Instantiate(loadSlotButton, transform); // Carrega o player para obter o nome SaveManager.Load(i); // Coloca as informações do save no botão de load loadSlotButton.transform.GetChild(0).GetComponent <Text>().text = " " + SaveManager.player.nome + "\n Idade: " + SaveManager.player.idade + " Série: " + SaveManager.player.serie; loadSlotButton.transform.GetChild(3).GetComponent <Text>().text = "x" + SaveManager.player.totalEstrelas; //loadSlotButton.GetComponentInChildren<Text>().text = " "+SaveManager.player.nome + " Idade: " +SaveManager.player.idade + " Série: "+SaveManager.player.serie; loadSlotButton.GetComponentInChildren <UnityEngine.UI.Button>().interactable = true; // Carrega a imagem do avatar para colocar no botão Sprite avatar = itensinfoList.avatarsToSell[SaveManager.player.avatarSelecionadoIndex].itemSprite; // Encontra a imagem do botão e muda para o avatar selecionado GameObject buttonImage = loadSlotButton.transform.GetChild(1).gameObject; buttonImage.GetComponent <Image>().sprite = avatar; // Se o slot está sendo usado, adiciona no contador slotsUsados--; } #region Opção de deixar todos os slots vísiveis, bloqueando os não utilizados /* * else * { * // Opção de deixar visível todos os slots, mas bloqueando os que não possuem save * // Podemos colocar a criação do botão dentro do if e só aparece se existir save * loadSlotButton.GetComponentInChildren<Text>().text = " Load Slot " + i + "\n Vazio"; * // Desabilita o botão e remove a imagem do avatar * loadSlotButton.GetComponent<UnityEngine.UI.Button>().interactable = false; * loadSlotButton.transform.GetChild(1).gameObject.SetActive(false); * }*/ #endregion } // Mostra quantos espaços de save estão livres do total GameObject.Find("Slots Livres").GetComponent <Text>().text = "Espaços Livres: " + slotsUsados.ToString() + "/" + SaveManager.slotsListSize; }
/// <summary> /// Informa qual o slot selecionado para carregar (load) /// </summary> public void SlotSelected() { GridLayout gridLayout = transform.parent.GetComponent <GridLayout>(); Vector3Int cellPos = gridLayout.WorldToCell(transform.position); selectedSlotButton = PositionToIndex(cellPos); // Verifica de qual save é o slot selecionado int count = 0, i; for (i = 0; i < SaveManager.slotsListSize; i++) { if (System.IO.File.Exists(SaveManager.dataPath + "/listaDeSlots.json") && !SlotsListManager.CheckSameNumber(i, SaveManager.list)) { if (count == selectedSlotButton) { break; } else { count++; } } } SaveManager.selectedSlot = i; //Debug.Log(selectedSlotButton + " " + i + " "+ SaveManager.player.slot); GameObject.Find("Confirma").GetComponent <UnityEngine.UI.Button>().interactable = true; GameObject.Find("Delete").GetComponent <UnityEngine.UI.Button>().interactable = true; }