Menu
CoddyTech

Revisão: slots de salvamento

Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 27 de 50.

challenge icon

Desafio

Médio

Um jogo de fazenda tem três slots de salvamento, cada um em seu próprio arquivo: slot1.json, slot2.json e slot3.json em Application.persistentDataPath. Escreva SlotSave e SlotMenu:

  • SlotSave (em SlotSave.cs) é uma classe [System.Serializable] com os campos públicos day e gold. Uma fazenda nova começa no dia 1 com 20 de ouro, e um salvamento de uma versão anterior que não tenha um valor recebe esse mesmo valor inicial.
  • Quando o jogo começa, o menu carrega todos os slots que têm um arquivo. O slot 1 fica selecionado; a seta para baixo seleciona o próximo slot e a seta para cima, o anterior, parando no slot 3 e no slot 1.
  • Os três slotTexts exibem cada slot como Slot 2: Day 4, 65 gold ou Slot 2: empty, e a linha do slot selecionado começa com > , como em > Slot 1: empty.
  • Pressionar Espaço em um slot vazio inicia uma nova fazenda nele. Pressionar Espaço em um slot em uso avança um dia: o dia aumenta em 1 e o ouro, em 15. Em ambos os casos, o slot é salvo no arquivo correspondente.
  • O botão Delete chama DeleteSelected(), que exclui o arquivo do slot selecionado e esvazia o slot.

Pressione Play, inicie uma ou duas fazendas e avance alguns dias; depois, pressione Stop e Play novamente. Então, pressione Check.

Experimente você mesmo

using System.IO;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class SlotMenu : MonoBehaviour
{
    public TMP_Text[] slotTexts;

    // O botão Delete chama este método
    public void DeleteSelected()
    {
    }
}

Todas as lições de Arquitetura de jogos no Unity