/// Se quiser melhorar no futuro: Fazer esse código ser private, e chamá-lo de outro lugar public void DeletePlayer(int slot) { string stringSlot = (slot.ToString() + ".json"); System.IO.File.Delete(System.IO.Path.Combine(dataPath, stringSlot)); //Debug.Log(SaveManager.selectedSlot); SlotsListManager.ReturnSlot(selectedSlot); }
/* * public void Update() * { * //Debug.Log(player.slot); * } */ #region Create & Save & Load que será chamada public void CreateNewPlayer()///Modificar de acordo com sua primeira tela de save { Player newPlayer = new Player(); player = newPlayer; SpecificFromGame(); player.SetSlot(SlotsListManager.SlotGiver(list)); }
/* * public void Update() * { * //Debug.Log(player.slot); * } */ #region Create & Save & Load que será chamada public void CreateNewPlayer()///Modificar de acordo com sua primeira tela de save { //List<Flag> flagTemp = this.player.flag; Player newPlayer = new Player(); player = newPlayer; SpecificFromGame(); player.slot = SlotsListManager.SlotGiver(list); }
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; }
public void CreateNewPlayer() { // Inicialização dos parametros básicos da classe Player no player do SaveManager SaveManager.player = newPlayer; //SaveManager.player.sistemaLiberado = newPlayer.sistemaLiberado; //SaveManager.player.avatarBloqueado = newPlayer.avatarBloqueado; //SaveManager.player.avatarSelecionadoIndex = newPlayer.avatarSelecionadoIndex; SaveManager.player.nome = GameObject.Find("NomeText").GetComponent <Text>().text; int.TryParse(GameObject.Find("IdadeText").GetComponent <Text>().text, out SaveManager.player.idade); int.TryParse(GameObject.Find("SerieText").GetComponent <Text>().text, out SaveManager.player.serie); SaveManager.player.slot = SlotsListManager.SlotGiver(SaveManager.list); SaveManager.player.CriarPontuacaoInicial(); }
public void Awake() { if (instance == null) { instance = this; } else if (this != instance) { Destroy(gameObject); } DontDestroyOnLoad(gameObject); dataPath = Application.persistentDataPath; slotsDataPath = System.IO.Path.Combine(dataPath, "listaDeSlots.json"); list = SlotsListManager.StartList(slotsDataPath); }
/// <summary> /// Recebe o caminho e salva os dados do Player que está no SaveManager.player /// </summary> /// <param name="path"></param> private void SavePlayerData(string path) { if (player.slot == -1) //O número -1 é dado caso não haja mais espaços livres para salvar o jogo. { Debug.Log("Não foi possível criar um save"); } else { SlotsListManager.RetiraKey(player.slot); string json = JsonUtility.ToJson(player); StreamWriter sw = File.CreateText(path); sw.Close(); File.WriteAllText(path, json); } }
/// <summary> /// Verifica se há o arquivo das lista de slots na pasta destino, caso não exista, cria um de acordo com o tamanho definido no slotsListSize. /// </summary> /// <param name="path"></param> /// <returns>Retorna a lista de slots que será utilizada</returns> public static SlotsList StartList(string path) { SlotsList list = new SlotsList(); if (System.IO.File.Exists(path)) { list = SlotsListManager.LoadSlotsList(path); return(list); } else { for (int i = 0; i < SaveManager.slotsListSize; i++) { list.slotsList.Add(i); } SaveSlotsList(path, list); return(list); } }
public void Awake() { dataPath = Application.persistentDataPath; slotsDataPath = System.IO.Path.Combine(dataPath, "listaDeSlots.json"); list = SlotsListManager.StartList(slotsDataPath); }
/// <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; }