2016-06-06 5 views
0

Ich möchte meinen Anwendungsstatus speichern, also habe ich begonnen, die Lade- und Speicherfunktionen für die Serialisierung zu erstellen.So speichern Sie Objekte über die Serialisierung, wenn sie monobehaviour sind

Dann habe ich gerade eine Wand getroffen; als ich erkannte, dass standardmäßig kein Monobehaviour serialisiert werden kann.

Also sagte ich mir, dass ich die Klasse dann in ein serialisierbares Objekt verpacken soll; Aber selbst in diesem Fall glaube ich, dass Sie kein Monobehaviour-Objekt haben und es als serialisierbares Objekt markieren können.

Bevor Sie von meinem Sofa springen und dieses Leben beenden; Ich hoffe ernsthaft, dass es einen Weg gibt, zu vermeiden, ALLE Elemente in verschiedenen Klassen zu kopieren (bisher habe ich 16 Klassen, jede trägt verschiedene Objekt-Sammlungen aus Listen oder Wörterbücher anderer Klassen-Typen), um den Zustand meines zu speichern Anwendung.

Ich werde ewig brauchen, um eine Methode zu schreiben, die jeden einzelnen Wert von jedem Objekt jeder Klasse nimmt; während ich unter dem Eindruck war, dass jedes Objekt gespeichert wird, konnte ich zumindest die Daten aus dem gespeicherten Objekt abrufen und die aktuellen Daten beim Laden ersetzen.

+1

Vielleicht möchten Sie dies lesen: http://StackOverflow.com/A/29720295/5311735 – Evk

+0

Danke, ich habe einige Hinweise aus diesem Thread nehmen; Es gibt jedoch keine einfache Antwort darauf, wie Sie vermeiden können, einen Teil Ihres Codes neu zu schreiben, um der Tatsache Rechnung zu tragen, dass einige Klassen nicht serialisiert werden können. Es war eine gute Lektüre, wenigstens anzufangen. Danke nochmal –

Antwort

0

Wenn es darum geht, komplexe Datenstrukturen zu speichern, gehe ich immer für die Verwendung von protobuf.Net Here ist ein Link zum NuGet-Paket. Ich schlage auch vor, dass Sie this Tutorial für einen tieferen Blick folgen. Das Tutorial ist sehr detailliert und es erklärt, wie Sie alles erstellen, was Sie zum Speichern Ihrer Daten benötigen. Ich habe das mehrfach benutzt und kann garantieren, dass es plattformunabhängig ist. Und ich bin sicher, dass Sie einen ProtoContract auf einem MonoBehaviour erstellen können. Sie müssen nur Ihre Klassenstruktur im ProtoBuf-Projekt neu erstellen.

+0

Danke für den Vorschlag; Ich habe das Tutorial gelesen und es ist einfach; aber die Menge an Arbeit, die benötigt wird, ist immer noch ziemlich viel, verglichen mit einem Memento-Muster. Ich möchte nicht riskieren, Zeit damit zu verbringen, dies zu implementieren und dann herauszufinden, dass das, was ich serialisieren möchte, nicht wie erwartet funktionieren wird. Ich habe schon fast 2 Monate mit diesem Thema verbracht; und die Uhr tickt :) Danke für den Vorschlag aber! –

Verwandte Themen