Récapitulatif : emplacements de sauvegarde
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 27 sur 50.
Défi
MoyenUn jeu de ferme dispose de trois emplacements de sauvegarde, chacun dans son propre fichier : slot1.json, slot2.json et slot3.json dans Application.persistentDataPath. Écris SlotSave et SlotMenu :
SlotSave(dans SlotSave.cs) est une classe[System.Serializable]avec les champs publicsdayetgold. Une nouvelle ferme commence au jour 1 avec 20 pièces d’or, et une sauvegarde d’une ancienne version à laquelle il manque une valeur reçoit cette même valeur de départ.- Au démarrage du jeu, le menu charge chaque emplacement qui possède un fichier. L’emplacement 1 est sélectionné ; la flèche vers le bas sélectionne l’emplacement suivant et la flèche vers le haut celui qui le précède, en s’arrêtant à l’emplacement 3 et à l’emplacement 1.
- Les trois
slotTextsaffichent chaque emplacement sous la formeSlot 2: Day 4, 65 goldouSlot 2: empty, et la ligne de l’emplacement sélectionné commence par>, comme dans> Slot 1: empty. - La barre d’espace sur un emplacement vide y démarre une nouvelle ferme. La barre d’espace sur un emplacement utilisé fait avancer d’un jour : le jour augmente de 1 et l’or de 15. Dans les deux cas, l’emplacement est sauvegardé dans son fichier.
- Le bouton Delete appelle
DeleteSelected(), qui supprime le fichier de l’emplacement sélectionné et vide cet emplacement.
Appuie sur Play, démarre une ou deux fermes et joue quelques jours, puis clique sur Stop et à nouveau sur Play. Ensuite, clique sur Check.
Essayez vous-même
using System.IO;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class SlotMenu : MonoBehaviour
{
public TMP_Text[] slotTexts;
// Le bouton Delete appelle cette méthode
public void DeleteSelected()
{
}
}
Toutes les leçons de Architecture de jeu dans Unity
1Des composants, pas des hiérarchies
Des composants simplesUn script de base pour les ennemisDes composants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaire4Données sérialisées
Classes sérialisablesListes dans l’inspecteurÉnumérations dans l’inspecteurRécapitulatif : table de butin7Machines à états
Les états sous forme de classesUne machine à étatsTransitionsLes cerveaux des ennemisRécapitulatif : états d’une porte10Projet : Survivant de l’arène
Le hérosTypes d’ennemis2Interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interaction5ScriptableObjects
Assets de donnéesStatistiques des armesParamètres partagésLes vagues sous forme de donnéesRécapitulatif : base de données d’objets3Événements
Événements C# dans UnityS’abonner dans OnEnableChamps UnityEventLes événements pilotent l’interface utilisateurRécapitulatif : fenêtre contextuelle de succès6Sauvegarder avec JSON
JsonUtilitySauvegarder le jeuCharger et valeurs par défautRécapitulatif : emplacements de sauvegarde