Zum Hauptinhalt springen

Gewusst wie: Speichern in Unity WebGL

Unity WebGL ist eine leistungsstarke Plattform für die Spieleentwicklung, mit der Sie interaktive und immersive Erlebnisse für Ihre Benutzer erstellen können. Wenn es jedoch darum geht, den Fortschritt des Spiels beizubehalten, stellt die Webversion von Unity einige Schwierigkeiten dar. In diesem Artikel werden wir verschiedene Möglichkeiten zum Speichern des Fortschritts in Unity WebGL untersuchen und Ihnen Tipps geben, wie Sie das für Ihr Projekt geeignete auswählen können.

Eine der häufigsten Methoden zum Speichern von Fortschritten in Unity WebGL ist die Verwendung des lokalen Browserspeichers. Dadurch können Daten auf dem Computer des Benutzers gespeichert werden, was das Speichern und Laden erheblich erleichtert. Beachten Sie jedoch, dass der lokale Speicher Einschränkungen hinsichtlich der Menge an Daten aufweist, die gespeichert werden können. Daher ist er für Projekte mit vielen zu speichernden Informationen möglicherweise keine geeignete Lösung.

Eine weitere Möglichkeit, den Fortschritt in Unity WebGL zu speichern, ist die Verwendung eines Remote-Servers. Sie können Spielfortschrittsdaten an den Server senden und diese beim nächsten Start des Spiels hochladen. Dadurch können Sie deutlich mehr Informationen speichern und nicht vom lokalen Speicher des Browsers abhängig sein. Dieser Ansatz erfordert jedoch, dass ein Server vorhanden ist und die Interaktion mit dem Client entsprechend konfiguriert wird.

Abhängig von Ihrem Projekt und Ihren Anforderungen können Sie eine dieser Methoden auswählen, um den Fortschritt in Unity WebGL zu speichern, oder sie kombinieren, um das beste Ergebnis zu erzielen. Denken Sie daran, dass das Speichern des Spielfortschritts ein wichtiger Teil der Benutzererfahrung ist. Wählen Sie daher den Ansatz, der Ihren Bedürfnissen am besten entspricht und Ihren Spielern eine Benutzerfreundlichkeit bietet.

Warum müssen Sie in Unity WebGL speichern

Das Speichern in Unity WebGL hat mehrere Vorteile:

  • Langfristige Erhaltung des Fortschritts: Speichern ermöglicht es Spielern, ihren Fortschritt im Spiel langfristig zu speichern. Dies ermöglicht es den Spielern, jederzeit zum Spiel zurückzukehren und von dort weiter zu spielen, wo sie aufgehört haben.
  • Portabilität zwischen Geräten: Speichern ermöglicht es Spielern, ihren Fortschritt zwischen verschiedenen Geräten zu übertragen. Wenn ein Spieler beispielsweise ein Spiel auf einem Computer gestartet hat, kann er das Spiel auf einem Tablet oder Smartphone fortsetzen, ohne das Spiel zuerst zu starten.
  • Implementieren verschiedener Enden: Speichern ermöglicht es den Spielen, je nach den Aktionen des Spielers unterschiedliche Enden zu haben. Es ist interessant für die Spieler, das Spiel mehrmals zu durchlaufen, um alle möglichen Enden zu sehen.
  • Zeiteinsparung: Sparen spart dem Spieler Zeit, besonders bei schwierigen und langwierigen Spielen. Die Spieler müssen nicht jedes Mal alle Ebenen neu durchlaufen, sie können das Spiel an der Stelle beginnen, an der sie aufgehört haben.

Alles in allem ist das Speichern in Unity WebGL ein wesentlicher Bestandteil des Spielerlebnisses und sorgt für einen komfortablen und unterhaltsamen Spielablauf.

Abschnitt 1: Erstellen von Sicherungen

Mit der PlayerPrefs-Klasse können Sie Daten in Unity WebGL speichern und laden, um Sicherungen zu erstellen. Im Spiel können Sie verschiedene Parameter wie den aktuellen Level, die Anzahl der Punkte oder die erhaltenen Gegenstände speichern.

Sie müssen PlayerPrefs verwenden, um die Daten zu speichern.setString, der zwei Parameter akzeptiert: schlüssel und Wert. Der Schlüssel muss eindeutig sein und die Persistenz identifizieren können, und der Wert kann ein beliebiger Text oder eine beliebige Zahl sein. Zum Beispiel:

Der SchlüsselBedeutung
Ebene3
Brille100

Nachdem die Daten gespeichert wurden, können sie mit der PlayerPrefs-Methode geladen werden.Ein getString, der einen Schlüssel annimmt und einen gespeicherten Wert zurückgibt. Zum Beispiel:

int level = PlayerPrefs.GetString("Уровень");int score = PlayerPrefs.GetString("Очки");

Der Einfachheit halber können Sie eine separate Klasse erstellen, die für das Speichern und Laden von Spieldaten zuständig ist. In dieser Klasse können Sie Methoden definieren, um verschiedene Parameter zu speichern und sie nach Bedarf zu verwenden.

Beachten Sie, dass die mit PlayerPrefs gespeicherten Daten nur auf demselben Gerät und im gleichen Browser verfügbar sind, auf dem Sie gespeichert wurden. Wenn der Spieler das Gerät oder den Browser ändert, sind seine Speicherdaten nicht verfügbar.

So erstellen Sie Sicherungen in Unity WebGL

Das Speichern in Spielprojekten kann ein wichtiges Element sein, um Spieler zu halten und ihren Fortschritt beizubehalten. In Unity WebGL gibt es mehrere Möglichkeiten, Persistenz zu implementieren, einschließlich der Verwendung des lokalen Browserspeichers und der Remote-Datenbank.

Eine einfache Möglichkeit zum Erstellen von Speichern in Unity WebGL besteht darin, den lokalen Speicher des Browsers zu verwenden. Dazu müssen Sie die PlayerPrefs-Funktion verwenden, mit der Sie Daten auf dem Gerät des Spielers speichern und herunterladen können.

Beispiel zum Speichern von Daten in Unity WebGL mit PlayerPrefs:

KodeDie Beschreibung
PlayerPrefs.SetInt("Score", score);Speichert den Wert der score-Variablen im lokalen Speicher des Browsers unter dem Schlüssel "Score".
int savedScore = PlayerPrefs.GetInt("Score");Lädt den gespeicherten Wert der score-Variablen aus dem lokalen Speicher des Browsers.

Sie können auch eine Remote-Datenbank verwenden, um Spielerspeicher zu speichern. Dazu müssen Sie eine Datenbankverbindung einrichten und Anforderungen zum Speichern und Laden von Daten senden.

Beispiel für die Verwendung einer Remotedatenbank zum Speichern in Unity WebGL:

KodeDie Beschreibung
IEnumerator SaveDataToDatabase(int score)Sendet eine Anforderung, den Wert der score-Variablen in der Remotedatenbank zu speichern.
IEnumerator LoadDataFromDatabase()Sendet eine Anforderung, den gespeicherten Wert der score-Variablen aus der Remotedatenbank zu laden.

Die Auswahl der Methode zum Speichern von Daten in Unity WebGL hängt von den Projektanforderungen und den Ressourcen ab, über die Sie verfügen. Der lokale Speicher des Browsers ist eine einfache Option zum Speichern kleiner Datenmengen, während die Verwendung einer Remote-Datenbank für das Speichern großer Datenmengen oder den Zugriff auf Speicher von verschiedenen Geräten nützlich sein kann.

Abschnitt 2: Speichertypen

Es gibt verschiedene Arten von Speichern in Unity WebGL, die Sie in Ihrem Spiel verwenden können:

  • Speichern auf dem Server. Diese Art von Speichern ermöglicht es Spielern, den Spielfortschritt auf einem Remote-Server zu speichern. Dieser Ansatz ermöglicht es Benutzern, auf verschiedenen Geräten zu spielen und das Spiel von dort aus fortzusetzen, wo sie aufgehört haben.
  • Lokale Speicherung. In diesem Fall können die Spieler den Spielfortschritt lokal auf ihrem Gerät speichern. Lokale Speicher können nützlich sein, wenn Spieler den Spielfortschritt nur auf einem Gerät speichern möchten oder wenn das Spiel keinen Zugriff auf einen Remote-Server hat.
  • Cloud-Speicher. Diese Art von Speichern kombiniert lokale Sicherungen und Serverspeicherungen. Cloud-Speicher ermöglichen es Spielern, den Spielfortschritt auf einem Remote-Server zu speichern, aber auch eine Kopie des Spielfortschritts lokal auf ihrem Gerät zu speichern. Dies ermöglicht die Sicherung der Spielerdaten und den Zugriff auf die Sicherungen, auch wenn keine Internetverbindung besteht.

Die Auswahl des Speichertyps für Ihr Spiel hängt von Ihren Bedürfnissen und Anforderungen ab. Bei der Gestaltung eines Speichersystems ist es wichtig, Sicherheitsbedenken, Zugriffsgeschwindigkeit und Benutzerfreundlichkeit für Spieler zu berücksichtigen.

Welche Speichertypen gibt es in Unity WebGL

Unity WebGL unterstützt verschiedene Arten von Speichern, mit denen Spieler ihre Fortschritte speichern und später zum Spiel zurückkehren können. Hier sind einige Arten von Speichern, die Sie in Unity WebGL verwenden können:

  1. Lokale Speicherung: Mit Unity WebGL können Sie Daten lokal auf dem Gerät des Spielers speichern. Dies kann nützlich sein, wenn ein Spieler vom selben Gerät zum Spiel zurückkehren möchte. Solche Sicherungen werden normalerweise im Cache-Ordner des Browsers gespeichert und haben ein begrenztes Ablaufdatum.
  2. Remote-Speicher: Unity WebGL unterstützt auch das Speichern von Daten auf einem Remote-Server. Dies ermöglicht es den Spielern, ihren Fortschritt von jedem mit dem Internet verbundenen Gerät wiederherzustellen. Die Daten können auf dem Server des Spiels oder im Cloud-Speicher gespeichert werden.
  3. Automatisches Speichern: Unity WebGL kann den Spielfortschritt zu bestimmten Zeiten automatisch speichern, um Datenverluste zu vermeiden. Zum Beispiel kann ein Spiel nach Abschluss eines Levels oder nach Abschluss einer bestimmten Aktion gespeichert werden. Dies ermöglicht es den Spielern, das Spiel vom letzten gespeicherten Punkt aus fortzusetzen, falls der Browser abstürzt oder geschlossen wird.
  4. Manuelle Speicherung: Unity WebGL bietet Spielern auch die Möglichkeit, ihre Fortschritte manuell zu speichern, wenn sie sich wohl fühlen. Dies kann nützlich sein, wenn ein Spieler ein Zwischenergebnis speichern oder eine Sicherungskopie seines Fortschritts erstellen möchte. Manuelle Speichervorgänge werden normalerweise über eine Spielschnittstelle oder eine spezielle Schaltfläche bereitgestellt.

Die Auswahl des Speichertyps in Unity WebGL hängt von den Anforderungen Ihres Spiels und den Erwartungen der Spieler ab. Sie können eine oder mehrere Arten von Speichern verwenden, um ein besseres Spielerlebnis zu bieten und den Fortschritt der Spieler zu speichern.

Abschnitt 3: Speichern auf dem Server

Neben dem lokalen Speichern bietet Unity WebGL auch die Möglichkeit, Daten auf dem Server zu speichern. Dies ist nützlich, wenn Sie den Fortschritt der Spieler speichern oder die Multiplayer-Funktionalität bereitstellen möchten.

Sie können verschiedene Technologien wie Datenbanken oder Cloud-Speicherdienste verwenden, um auf dem Server zu speichern. Sie müssen eine Verbindung zum Server einrichten und die Daten im JSON-Format senden.

Zuerst müssen Sie den Backend Ihrer Anwendung konfigurieren, der Daten von Unity WebGL empfängt und verarbeitet. Sie können jede serverseitige Programmiersprache wie PHP, Node verwenden.js oder Python. Sie benötigen auch eine Datenbank oder eine andere Art der Datenspeicherung, um die Informationen der Spieler zu speichern.

Auf der Clientseite können Sie in Ihrem Unity WebGL-Projekt verschiedene Methoden verwenden, um Daten an den Server zu senden. Zum Beispiel können Sie die Klasse WWW oder UnityWebRequest verwenden, um Anfragen an den Server zu senden, indem Sie Daten im JSON-Format übergeben.

Nachdem Sie die Daten an den Server gesendet und verarbeitet haben, müssen Sie eine Logik zum Laden und Anzeigen der gespeicherten Daten in Ihrer Unity WebGL-Anwendung entwickeln. Sie können beispielsweise eine Anfrage an den Server senden, um die gespeicherten Daten abzurufen, bevor ein Spiel oder eine bestimmte Phase des Spiels beginnt. Sie können dann Ihre Anwendung mit den erhaltenen Daten aktualisieren.

Es ist wichtig sich daran zu erinnern, dass das Speichern von Daten auf dem Server zusätzliche Sicherheitsmaßnahmen erfordert. Sie müssen die Daten der Spieler schützen und den unbefugten Zugriff auf ihre Daten verhindern. Lesen Sie in der Dokumentation zur Serversicherheit nach, und wenden Sie sich an einen Spezialisten, wenn Sie in dieser Angelegenheit Hilfe benötigen.

Das Speichern auf dem Server bietet leistungsstarke Funktionen für Ihre Unity WebGL-Anwendung. Es ermöglicht Ihnen, Spielerdaten in Echtzeit zu speichern, herunterzuladen und zu aktualisieren. Nutzen Sie diese Funktion, um die Benutzererfahrung zu verbessern und eine interaktivere Spielanwendung zu erstellen.

So speichern Sie Daten auf dem Server in Unity WebGL

Im folgenden Beispielcode wird veranschaulicht, wie Daten mithilfe von AJAX auf dem Server in Unity WebGL gespeichert werden:

using UnityEngine;using UnityEngine.Networking;public class SaveData : MonoBehaviourprivate IEnumerator SendDataToServer(string data)else>>>

In diesem Beispiel senden wir die Daten mithilfe der Methode "SendDataToServer" an den Server. Wir erstellen ein WWWForm-Formularobjekt, fügen dem Formular mithilfe der Funktion "addField" Daten hinzu und senden die Daten mit UnityWebRequest an den Server.

Beachten Sie, dass Sie ersetzen müssen "http://example.com/saveData .php" auf die reale URL Ihres Servers, auf der sich das Skript befindet, das Datenspeicheranforderungen verarbeitet.

Nachdem Sie die Daten erfolgreich auf dem Server gespeichert haben, können Sie die Daten von Ihrem Unity WebGL-Projekt auf die gleiche Weise mit AJAX zurückholen.

Abschnitt 4: Lokales Speichern

In Unity WebGL gibt es mehrere Möglichkeiten, die lokale Speicherung zu implementieren. Der erste Weg ist die Verwendung von PlayerPrefs. PlayerPrefs ist eine Klasse zum Speichern von Schlüssel-Wert-Daten in Unity. Diese Methode hat jedoch eine Einschränkung: Die Daten werden nur innerhalb einer Browsersitzung gespeichert, und nach dem Schließen des Browsers gehen die Daten verloren.

Die zweite Methode ist die Verwendung von Web PlayerPrefs. Web PlayerPrefs ist eine Anpassung der PlayerPrefs-Klasse, die speziell für Unity WebGL entwickelt wurde. Es ermöglicht Ihnen, Daten auf der Clientseite im Speicher des Browsers zu speichern, und die Daten gehen beim Schließen des Browsers nicht verloren. Mit Web PlayerPrefs können Sie Daten mit den gleichen Methoden wie in PlayerPrefs speichern und laden.

Der dritte Weg ist die Verwendung von localStorage. localStorage ist ein spezieller Mechanismus für Webanwendungen, mit dem Sie clientseitige Daten im Browserspeicher speichern können. In Unity WebGL können Sie JavaScript verwenden, um mit localStorage zu interagieren und Daten zu speichern. Diese Methode ist am flexibelsten und ermöglicht das Speichern und Laden komplexer strukturierter Daten.

ArtDie BeschreibungVorteileNachteile
PlayerPrefsSpeichern von Daten in einer einzigen BrowsersitzungEinfach zu bedienenBeim Schließen des Browsers gehen Daten verloren
Web PlayerPrefsSpeichern von Daten im Browser-SpeicherDie Daten werden beim Schließen des Browsers gespeichertErfordert zusätzliche Konfiguration
LocalStorageSpeichern von Daten im BrowserspeicherErmöglicht das Speichern komplexer DatenstrukturenErfordert Bündelung mit JavaScript

So speichern Sie Daten lokal in Unity WebGL

Unity WebGL bietet eine bequeme Möglichkeit, Daten lokal auf dem Computer eines Benutzers zu speichern. Dies kann beispielsweise nützlich sein, um den Fortschritt eines Spielers oder die Benutzeroberflächeneinstellungen zu speichern. In diesem Abschnitt werden wir uns ansehen, wie dies zu tun ist.

Zunächst müssen wir JavaScript verwenden, um zwischen Unity WebGL und dem Browser zu interagieren. In Unity WebGL können Sie JavaScript-Funktionen aus dem Code des Spiels aufrufen und auf Ereignisse warten, die vom Browser generiert werden.

Das lokale Speichern von Daten in Unity WebGL erfordert jedoch einige zusätzliche Manipulationen. Zuerst müssen wir die Funktion "PlayerPrefs" verwenden.setString" zum Speichern von Daten und der Funktion "PlayerPrefs.getString" zum Lesen. Zweitens müssen wir verstehen, dass diese Speicherung im Browser des Benutzers stattfindet und Webseiten, die auf einem Remote-Server bereitgestellt werden, keinen Zugriff auf diese Daten haben.

Um die Daten lokal in Unity WebGL zu speichern, erstellen Sie zunächst ein C# -Skript, das eine JavaScript-Funktion zum Speichern der Daten aufruft. Sie können beispielsweise den folgenden Code in Ihrem Skript verwenden:

Hier verwenden wir die UNITY_WEBGL-Präprozessordirektive, um sicherzustellen, dass der Code nur in Unity WebGL aufgerufen wird. In diesem Code rufen wir die Funktion "PlayerPrefs" auf.setString" und übergeben Sie den Schlüsselnamen ("savedData") und die Daten, die wir speichern möchten.

Sie können dann den folgenden C-Code verwenden, um die gespeicherten Daten zu lesen#:

Hier verwenden wir die ähnlichen Präprozessor-Direktiven UNITY_WEBGL und UNITY_EDITOR, um sicherzustellen, dass der Code nur in Unity WebGL aufgerufen wird. Dann rufen wir die Funktion "PlayerPrefs" auf.getString" und übergeben Sie den Schlüsselnamen ("savedData") an sie. Wenn keine Daten gefunden werden, geben wir eine leere Zeichenfolge zurück.

Das ist alles! Jetzt wissen Sie, wie Sie Daten lokal in Unity WebGL speichern. Vergessen Sie nicht, dass diese Daten nur auf dem Computer des Benutzers verfügbar sind und nicht an den Server übertragen werden. Verwenden Sie die lokale Speicherung von Daten in Unity WebGL mit Bedacht und berücksichtigen Sie die mit dieser Funktion verbundenen potenziellen Sicherheitsrisiken.

Abschnitt 5: Wiederherstellen von Sicherungen

Wenn ein Spieler zum Spiel zurückkehrt, ist es wichtig, ihm die Möglichkeit zu geben, seine gespeicherten Daten wiederherzustellen. In diesem Abschnitt erfahren Sie, wie Sie eine Sicherungswiederherstellung in einem Unity WebGL-Projekt implementieren.

1. Erstellen Sie eine Benutzeroberfläche, in der eine Liste mit Speichern angezeigt wird. Sie können Steuerelemente wie Schaltflächen oder Dropdown-Listen verwenden, um dem Spieler zu ermöglichen, das Speichern für die Wiederherstellung auszuwählen.

2. Nachdem der Spieler das Speichern ausgewählt hat, laden Sie die entsprechende Sicherungsdatei herunter. Dazu können Sie die von Unity bereitgestellten Methoden verwenden, um mit WebGL-Dateien zu arbeiten.

3. Analysieren Sie die Sicherungsdatei und stellen Sie die Daten im gewünschten Format wieder her. Sie können das JSON-Format oder ein anderes Format verwenden, das für Sie praktisch ist.

4. Aktualisieren Sie den Spielstatus mithilfe der wiederhergestellten Daten. Denken Sie daran, dass einige Daten veraltet oder ungültig sein können, daher sollten Sie sie vor der Verwendung auf Korrektheit überprüfen.

5. Benachrichtigen Sie den Spieler, wenn die Sicherung erfolgreich wiederhergestellt wurde. Sie können ein Popup-Fenster oder eine andere geeignete Methode verwenden, um dies zu melden.

6. Führen Sie bei Bedarf weitere Schritte zum Wiederherstellen von Sicherungen durch. Zum Beispiel kannst du den letzten Standort eines Charakters wiederherstellen oder den Spieler zur aktuellen Spielsitzung zurückgeben.

Mit diesen Schritten können Sie eine Sicherungswiederherstellung in Ihrem Unity WebGL-Projekt implementieren. Denken Sie daran, dass die Wiederherstellung der Erhaltung ein wichtiger Teil des Spielerlebnisses ist und die Zufriedenheit und das Interesse der Spieler erhöht. Versuchen Sie, eine intuitive und übersichtliche Benutzeroberfläche zu erstellen, die einfach zu bedienen ist und den Prozess der Wiederherstellung von Sicherungen für Ihre Benutzer erleichtert.