Menu
CoddyTech

Повторение: слоты сохранения

Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 27 из 50.

challenge icon

Задание

Средне

В игре о фермерстве есть три ячейки сохранения, каждая в отдельном файле: slot1.json, slot2.json и slot3.json в Application.persistentDataPath. Напишите SlotSave и SlotMenu:

  • SlotSave (в SlotSave.cs) — это класс [System.Serializable] с открытыми полями day и gold. Новая ферма начинается в 1-й день с 20 золотыми, и сохранение из старой версии, в котором отсутствует значение, получает то же начальное значение.
  • При запуске игры меню загружает каждую ячейку, для которой существует файл. Выбрана ячейка 1; стрелка вниз выбирает следующую ячейку, а стрелка вверх — предыдущую, не переходя дальше ячейки 3 и ячейки 1.
  • Три slotTexts показывают каждую ячейку в виде Slot 2: Day 4, 65 gold или Slot 2: empty, а строка выбранной ячейки начинается с > , как в > Slot 1: empty.
  • Пробел в пустой ячейке начинает там новую ферму. Пробел в используемой ячейке запускает новый игровой день: номер дня увеличивается на 1, а количество золота — на 15. В обоих случаях ячейка сохраняется в файл.
  • Кнопка Delete вызывает DeleteSelected(), которая удаляет файл выбранной ячейки и очищает её.

Нажмите Play, начните одну или две фермы и сыграйте несколько дней, затем нажмите Stop, а потом снова Play. После этого нажмите Check.

Попробуйте сами

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

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

    // Кнопка Delete вызывает этот метод
    public void DeleteSelected()
    {
    }
}

Все уроки раздела Архитектура игр в Unity