Speichern / Laden von Daten in Unity

Ich habe mit dem Speichern und Laden in Unity herumgespielt, in dem ich eine serialisierte Klasse in einer Datei speichere. Ich habe eine serialisierbare Klasse:

[Serializable]
class Save
{
    public List<int> ID = new List<int>();
    public List<int> Amounts = new List<int>();
}

und speichern Sie es in einer Datei A-OK. Ich kann es ohne Fehler laden, aber wenn ich später hinzufügen wollte:

[Serializable]
class Save
{
    public List<int> ID = new List<int>();
    public List<int> Amounts = new List<int>();
    public int extra = 0;
}

und ich führe meine Skripte aus, es gibt mir einen Deserialisierungsfehler, den ich vollständig verstehe, wenn ich die deserialisierte Datei in meine neue Klasse "Saved" umwandle. Die neue Variable, die ich hinzugefügt habe, existiert nicht und es gibt mir den Fehler.

Ich habe diesen Fehler gefunden, als ich ein Asset im Store repariert habe und weiß, dass ein Fix einfach den Dateinamen ändern kann, damit eine neue Datei erstellt wird, aber ich möchte nicht nur den Inhalt dessen löschen, was zuvor gespeichert wurde.

So ist meine Frage, ob ich meiner serialisierten Klasse weitere Variablen hinzufügen möchte, wie ich alte Versionen davon abfangen und anpassen würde, wenn die Benutzer das Asset aktualisieren würden.

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage