Datenübertragung zwischen der Einheitsszene: Methoden und Überlegungen
Einheit bietet mehrere Methoden zum Übergeben von Daten zwischen Szenenwechsel. Die ausgewählte Methode hängt von der Art der Daten und ihrer erwarteten Verwendung ab.
Verwenden Sie statische Variablen
Wenn die Daten der Grundtyp (int, Zeichenfolge usw.) sind oder nicht von der benutzerdefinierten Art von Monobehaviour geerbt wurden, kann die Aussage als Statik sicherstellen, dass sie zwischen den Szenen existiert.
Beispiel:
Verwenden Sie dontdestroyonload
<code>public static int score;</code>
Nach dem Login kopieren
Für GameObject oder Komponenten, die von Monobehaviour geerbt wurden, kann die Verwendung von Dontdestroyonload verhindern, dass sie während des Szenenwechsels zerstört werden.
Beispiel:
Lokale Datenspeicherung
<code>void Awake()
{
DontDestroyOnLoad(gameObject);
}</code>
Nach dem Login kopieren
PlayerPrefs und File -basierte Speicher (XML, JSON, Binary) bieten Optionen für anhaltende Daten außerhalb der Szenengrenze.
PlayerPrefs: Es ist für eine kleine Datenmenge geeignet (z. B. hohe Bewertungen, Einstellungen).
Beispiel:
Datei -basierte Speicher:
Es ist für eine große Menge an Daten oder komplexen Datenstrukturen geeignet.
Beispiel: Verwenden Sie die benutzerdefinierte Datenklasse PlayerData: <code>void OnDisable()
{
PlayerPrefs.SetInt("playerScore", playerScore);
}</code>
Nach dem Login kopieren
Vorschlag
Für einfache Daten, die in der Szene nicht umgeschaltet werden müssen, verwenden Sie statische Variablen.
Für GameObject oder Komponenten, die die dauerhafte Entität darstellen, verwenden Sie dontdestroyonload. <code>void SaveData()
{
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite("playerData.bin")))
{
writer.Write(playerData.score);
// ... 保存其他数据
}
}</code>
Nach dem Login kopieren
Verwenden Sie für eine kleine Menge lokaler Speicherung PlayerPrefs.
Für große oder komplizierte Daten, die nach dem Neustart des Spiels vorhanden sind, verwenden Sie den speicherbasierten Speicher. -
- Berücksichtigen Sie die Handels -Offs und Einschränkungen jeder Methode, um die am besten geeignete Lösung für Ihre spezifischen Datenfreigabeanforderungen auszuwählen.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten zwischen den Szenen in der Einheit am besten übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!