Menu
CoddyTech

Repaso: ranuras de guardado

Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 27 de 50.

challenge icon

Desafío

Intermedio

Un juego de granja tiene tres espacios de guardado, cada uno en su propio archivo: slot1.json, slot2.json y slot3.json en Application.persistentDataPath. Escribe SlotSave y SlotMenu:

  • SlotSave (en SlotSave.cs) es una clase [System.Serializable] con los campos públicos day y gold. Una granja nueva empieza en el día 1 con 20 de oro, y una partida guardada de una versión anterior que no tenga un valor obtiene ese mismo valor inicial.
  • Cuando se inicia el juego, el menú carga todos los espacios que tengan un archivo. Se selecciona el espacio 1; la flecha abajo selecciona el espacio siguiente y la flecha arriba el anterior, sin pasar del espacio 3 ni del espacio 1.
  • Los tres slotTexts muestran cada espacio como Slot 2: Day 4, 65 gold o Slot 2: empty, y la línea del espacio seleccionado empieza con > , como en > Slot 1: empty.
  • Al pulsar Espacio en un espacio vacío, se inicia una granja nueva allí. Al pulsar Espacio en un espacio ocupado, se juega un día: el día aumenta en 1 y el oro en 15. En ambos casos, el espacio se guarda en su archivo.
  • El botón Delete llama a DeleteSelected(), que elimina el archivo del espacio seleccionado y lo vacía.

Pulsa Play, inicia una o dos granjas y juega algunos días; después, pulsa Stop y Play de nuevo. Luego, pulsa Check.

Pruébalo tú mismo

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

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

    // El botón Delete llama a este método
    public void DeleteSelected()
    {
    }
}

Todas las lecciones de Arquitectura de juegos en Unity