Powtórka: sloty zapisu
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 27 z 50.
Wyzwanie
ŚredniGra farmerska ma trzy miejsca zapisu, każde we własnym pliku: slot1.json, slot2.json i slot3.json w Application.persistentDataPath. Napisz SlotSave i SlotMenu:
SlotSave(w pliku SlotSave.cs) to klasa[System.Serializable]z publicznymi polamidayigold. Nowa farma zaczyna grę w dniu 1 z 20 sztukami złota, a zapis ze starszej wersji, w którym brakuje wartości, otrzymuje tę samą wartość początkową.- Po uruchomieniu gry menu wczytuje każde miejsce, dla którego istnieje plik. Wybrane jest miejsce 1; strzałka w dół wybiera następne miejsce, a strzałka w górę poprzednie, z ograniczeniem do miejsca 3 i miejsca 1.
- Trzy elementy
slotTextspokazują każde miejsce jakoSlot 2: Day 4, 65 goldlubSlot 2: empty, a wiersz wybranego miejsca zaczyna się od>, tak jak w> Slot 1: empty. - Spacja w pustym miejscu rozpoczyna tam nową farmę. Spacja w używanym miejscu rozgrywa kolejny dzień: dzień zwiększa się o 1, a ilość złota o 15. W obu przypadkach miejsce zostaje zapisane do pliku.
- Przycisk Delete wywołuje
DeleteSelected(), która usuwa plik wybranego miejsca i opróżnia to miejsce.
Naciśnij Play, rozpocznij jedną lub dwie farmy i rozegraj kilka dni, a następnie naciśnij Stop i ponownie Play. Potem naciśnij Check.
Spróbuj swoich sił
using System.IO;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class SlotMenu : MonoBehaviour
{
public TMP_Text[] slotTexts;
// Przycisk Delete wywołuje tę metodę
public void DeleteSelected()
{
}
}
Wszystkie lekcje w sekcji Architektura gier w Unity
1Komponenty, nie hierarchie
Małe komponentyPodstawowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPodsumowanie: modułowa wieżyczka4Dane serializowane
Klasy serializowalneListy w InspectorzeWyliczenia w InspectorzePodsumowanie: tabela łupów10Projekt: Arena przetrwania
BohaterTypy wrogów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPodsumowanie: klawisz interakcji5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaFale jako danePowtórka: baza danych przedmiotów8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearest3Zdarzenia
Zdarzenia C# w UnitySubskrypcja w OnEnablePola UnityEventZdarzenia sterują interfejsemPodsumowanie: wyskakujące okno osiągnięcia6Zapisywanie za pomocą JSON
JsonUtilityZapisz gręWczytywanie i wartości domyślnePowtórka: sloty zapisu