Kojote Geschrieben 10. Juni 2017 Melden Share Geschrieben 10. Juni 2017 Grüße! Mal eine Frage, bei meinem Spiel werden einigen Variablen hin und her geschupst und einige Bools aktiviert und deaktiviert. Ich möchte nun dem Spieler die Möglichkeit per Button geben, alles auf einen Ausgangspunkt zurück zu setzen. Die Möglichkeit bestünde, alle Variablenwerte einzeln zu speichern, jedoch wäre dies sehr mühsam und umständlich, habt ihr da eine Idee? Des weiteren, ich arbeite in meinem Spiel mit Levels. Wie speichere ich es ab, wenn der Spieler ein Level geschafft hat und das nächste frei schaltet? EDIT: Also noch mal nachgedacht bräuchte ich zwei Speicherbereiche. 1. Ein Speicherbereich für Musiklautstärke und Co. zuzüglich die Level die geschafft wurden. 2. Ein Speicherbereich der in einem Level sämtliche Variablen und Booleans, Positionierungen und Co speichert, hier auch wieder geladen werden kann und den ich nach dem Levelende wieder löschen kann. Hoffe ihr könnt mir da weiter helfen und schon mal vielen Dank für die Hilfe! Grüße von Kojote Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Helishcoffe Geschrieben 11. Juni 2017 Melden Share Geschrieben 11. Juni 2017 Zu 1.: Hier bieten sich die PlayerPrefs am besten an. Die sind genau für solche Zwecke gedacht. Einfach mal nach "Unity PlayPrefs" googlen und dann mal in der Scripting Reference einlesen. Zu 2.: Ich denke mal je nach dem wieviele Variablen du da hast, bist du besser bedient, wenn du das alles in eine externe Datei speicherst. C# bringt da ganz gute Implementationen mit zum Speichern und Laden von z.B. XML-Dateien. XML (oder auch andere Markup Sprachen) eignen sich zum Speichern größerer Datenmengen für deine Anforderungen sehr gut. Wenn man es übertreiben will kann man natürlich auch auf SQL zurückgreifen aber das wäre glaube ich mit Kanonen auf Spatzen schießen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 12. Juni 2017 Autor Melden Share Geschrieben 12. Juni 2017 Habe es mir gerade einmal angeschaut, ich müsste da ja jede Variable einzeln sichern. Gibt es eine Möglichkeit alles auf einmal zu speichern, so in der Art: "Speichere alle Variablen im jetzigen Zustand?" Des weiteren, merke ich gerade ein kleines Problem. Ich habe mir mehrere Prefabs erstellt. Wenn ich nun in das Script der Prefabs in Awake das Speichern der Koordinaten und eine Methode zum Laden eintrage, hat jedes Objekt, welches durch das Prefab erstellt wurde, diese Methoden ja auch. Würden die sich nun nicht gegenseitig mit ihren Daten und Koordinaten überschreiben? Brauche ich nun für jedes Objekt ein eigenes Script? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Torigas Geschrieben 12. Juni 2017 Melden Share Geschrieben 12. Juni 2017 Das mit dem Level kannst mit ScriptableObjects machen. Mir ist kein einfacher Weg bekannt alles zu speichern. Bei einer reinen Datenhaltungsklasse könnte man eine naive Serialisierung versuchen: https://stackoverflow.com/questions/36852213/how-to-serialize-and-save-a-gameobject-in-unity https://unity3d.com/learn/tutorials/topics/scripting/persistence-saving-and-loading-data Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 12. Juni 2017 Melden Share Geschrieben 12. Juni 2017 Hier ist eine Möglichkeit die Daten einer Klasse in den PlayerPrefs abzulegen. Dafür müsstest du deine Leveldaten in einer Datenklasse zusammenfassen und diese könntest du dann über die Klasse "PlayerPrefsX2" in den PlayerPrefs gebündelt ablegen. Beispiel: using UnityEngine; using System.Collections; class Level { public string Name; public int Index; public int Size; public int AchievablePoints; public int NumberOfEnemies; ... } Du kannst entweder die Reflectionklasse "PlayerPrefsX2" verwenden, oder du programmierst die Speicherung deiner Leveldaten in den PlayerPrefs von Hand aus. Letzteres macht etwas mehr Arbeit, aber wäre die Variante die ich bevorzugen würde.http://wiki.unity3d.com/index.php/PlayerPrefsX2 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 12. Juni 2017 Autor Melden Share Geschrieben 12. Juni 2017 OK, da muss ich mich jetzt erst ma einfuchsen, kommen bestimmt noch nachfragen! Erst einmal danke für eure Hilfe! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 12. Juni 2017 Melden Share Geschrieben 12. Juni 2017 vor 13 Stunden schrieb Kojote: Speichere alle Variablen im jetzigen Zustand? Ich kann dir zu dieser Frage zwei Dinge sagen: Du bist nicht der erste, der das machen möchte. Es ist absolut keine gute Idee. Es gibt endlos viele Variablen in einem fertigen Spiel, die du nicht permanent speichern möchtest Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 12. Juni 2017 Autor Melden Share Geschrieben 12. Juni 2017 Ja das stimmt schon, habe nun einmal zusammen gezählt, wird schon einiges an Variablen werden, was ich pro Level brauche. Denke da werde ich schon in Richtung XML arbeiten müssen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.