Повторение: слоты сохранения
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 27 из 50.
Задание
СреднеВ игре о фермерстве есть три ячейки сохранения, каждая в отдельном файле: 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
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыСовместная работа компонентовПовторение: модульная турель4Сериализованные данные
Сериализуемые классыСписки в InspectorПеречисления в InspectorПовторение: таблица лута2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействия5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиВолны как данныеПовторение: база предметов3События
События C# в UnityПодписка в OnEnableПоля UnityEventСобытия управляют интерфейсомПовторение: всплывающее окно достижения6Сохранение с помощью JSON
JsonUtilityСохранение игрыЗагрузка и значения по умолчаниюПовторение: слоты сохранения