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.
Desafio
MédioUm 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úblicosdayegold. 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
slotTextsexibem cada slot comoSlot 2: Day 4, 65 goldouSlot 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
1Componentes, não hierarquias
Componentes pequenosUm script-base para inimigosComponentes abstratosComponentes trabalhando juntosRevisão: Torre modular4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de Loot7Máquinas de Estados
Estados como ClassesUma Máquina de EstadosTransiçõesInteligências dos InimigosRevisão: Estados da Porta10Projeto: Sobrevivente da Arena
O HeróiTipos de Inimigos5ScriptableObjects
Assets de dadosAtributos das armasConfigurações compartilhadasOndas como dadosRevisão: banco de dados de itens