Jump to content
Unity Insider Forum

Arrays in PlayerPrefs speichern


Marco911Porsche

Recommended Posts

Hallo.

Ich arbeite gerade an einem Projekt, in dem man Oldtimer restaurieren soll, und für diese Oldtimer möchte ich Werte speichern.

Dies sind die Dinge, die ich speichern will:

-Welche Autos stehen in meiner Garage (und wie viele davon)?

- Was muss an den Autos repariert werden?

-Welche Farbe hat das Auto?

 

Meine bisherigen Versuche, das umzusetzen, sind leider fehlgeschlagen. Ich kann zwar einzelne Daten in Playerprefs speichern, aber keine Arrays. Vielleicht mache ich irgendwas falsch.

Ich habe schon von System.IO gehört, und dass man damit Textdateien(?) mit den Daten speichern kann.

Einen Code kann ich jetzt nicht posten, weil mein Script nicht funktioniert hat und ich es deshalb aus Frust gelöscht habe.

 

 

 

Eventuell kann mir hier jemand helfen.

 

Seit ich meinen letzten Post hier gemacht habe, habe ich übrigens sehr viele Fortschritte beim Entwickeln von Spielen gemacht(Wer auch immer das wissen wollte).

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also bei Arrays oder Objekten (statt einzelner Werte) werden PlayerPrefs etwas unpraktisch. Prinzipiell baust du dir einfach nur deine Keys aus Einzelteilen zusammen. Das in einer Funktion zusammenzufassen ist dabei immer eine gute Idee. Ein Beispiel, wie man ein String-Array speichern oder laden kann:

public static void SetStringArray(string key, string[] values)
{
  PlayerPrefs.SetInt(key + ".length", values.Length);
  var i = 0;
  for(; i < values.Length; i++)
  {
    PlayerPrefs.SetString(key + "[" + i + "]", values[i]);
  }
  while(PlayerPrefs.Haskey(key + "[" + i + "]"))
  {
    PlayerPrefs.DeleteKey(key + "[" + i + "]");
    i++;
  }
}

public static string[] GetStringArray(string key)
{
  var length = PlayerPrefs.GetInt(key + ".length", 0);
  var result = new string[length];
  for(var i = 0; i < length; i++)
  {
    result[i] = PlayerPrefs.GetString(key + "[" + i + "]");
  }
  return result;
}

Wenn man das jetzt noch auf Objekte ausweitet, wird's echt haarig.

Wenn du eine Alternative nutzen willst, gibt es einen Haufen Möglichkeiten. .NET ist darauf ausgelegt, XML am besten zu finden, daher gibt's da schon ewig eingebauten Support für. Es gibt für XML und alle möglichen anderen Formate aber auch Bibliotheken, die man benutzen kann. Mit "C# XML", "C# JSON" oder "C# YAML" und dererlei Suchbegriffen wird man schnell fündig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...