Beispiel #1
0
    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;
    }