Dans Unity, lors de l'enregistrement de données en tant que classe sérialisée, l'ajout de variables supplémentaires à la classe peut provoquer des conflits lorsque chargement des anciennes versions du fichier enregistré. Pour gérer cela avec élégance, envisagez de convertir les données au format JSON.
Utilisez JsonUtility.ToJson pour convertir la classe sérialisée en chaîne JSON. Enregistrez cette chaîne à l'aide de PlayerPrefs.SetString ou d'autres méthodes préférées. Lors du chargement des données, utilisez JsonUtility.FromJson pour reconvertir la chaîne JSON dans la classe.
Enregistrer les données :
using UnityEngine; using System; using System.Collections.Generic; [Serializable] public class Save { public List<int> ID = new List<int>(); public List<int> Amounts = new List<int>(); public int extra = 0; public float highScore = 0; public string ToJson() { return JsonUtility.ToJson(this); } public static Save FromJson(string json) { return JsonUtility.FromJson<Save>(json); } } void Save() { Save saveData = new Save(); ... // Populate the data fields string jsonData = saveData.ToJson(); PlayerPrefs.SetString("MySettings", jsonData); PlayerPrefs.Save(); }
Charger les données :
void Load() { string jsonData = PlayerPrefs.GetString("MySettings"); Save loadedData = Save.FromJson(jsonData); ... // Use the loaded data }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!