Heim >Backend-Entwicklung >C++ >Wie kann ich Daten zwischen Szenen in der Einheit effektiv übergeben?
Die effiziente Datenübertragungsmethode zwischen der Einheitsszene
Beim Umschalten von Szenen in Einheit müssen Daten häufig Daten zwischen den Szenen übergeben. Es gibt viele Möglichkeiten, dies zu erreichen, und die spezifische Methode hängt vom Datentyp ab.
statische Variablen
Wenn die Daten der grundlegende Datentyp sind (int, bool, String usw.), wird sie nicht von Monobehaviour geerbt und ist kein GameBject, Sie können sie als statische Variable markieren. Statische Variablen behalten ihren Wert beim Wechseln der Szenen bei.
von Monobehaviour oder GameObject geerbte Objekte können mit der Funktion "dontdestroyonload" beibehalten werden. Dies verhindert, dass GameObject zerstört wird, wenn die Szene deinstalliert wird. Durch Hinzufügen eines Skripts, das diese Funktion zum Objekt enthält, werden seine Variablen in der nächsten Szene zugänglich gehalten.
PlayerPrefs ist die API der Einheit, die eine kleine Datenmenge, die eine kleine Datenmenge speichern kann, wie z. B. Schlüsselwertpaare, speichern kann. Es kann verwendet werden, um grundlegende Daten wie Bewertungen oder Einstellungen zu speichern.
Datei IO Serialisierung
Für eine große Menge an Daten oder komplexen Objekten können Sie serialisierte Dateiformate wie JSON oder Binär verwenden. Sie können eine benutzerdefinierte Klasse erstellen, um die Spieldaten darzustellen, und dann die C#-Datei -API (z. B. Datei.WriteAllBytes und Datei.readallBytes) verwenden, um sie in die Datei zu serialisieren.
Fall: Übertragungswerte
Im Beispielcode werden PlayerPrefs.setint und PlayerPrefs.getint verwendet, um den Punktzahl an die nächste Szene zu übergeben. Nachdem die Punktzahl gespeichert wurde, gibt es jedoch keinen Umschalten der Szene, sodass die geladene Szene nicht auf den aktualisierten Wert zugreifen kann. Der Code sollte wie folgt geändert werden:Szene 1:
Szene 2:
Diese Änderung stellt sicher, dass die Verwendung von PlayerPrefs zum Speichern der aktuellen Punktzahl verwendet wird, und das neue Szenario verwendet die gespeicherten Bewertungen zum Initialisieren und dann für PlayerPrefs zurück.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten zwischen Szenen in der Einheit effektiv übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!