La persistance des données dans Unity est cruciale pour sauvegarder des informations importantes.
Sans une solution adéquate, les données pourraient être perdues à chaque fermeture de l’application, entraînant des frustrations.
PlayerPrefs offre une méthode simple et efficace pour garantir que les données essentielles, comme les scores et préférences, sont conservées.
Créez votre premier jeu 3D en C# avec Unity, étape par étape.
Lorsque vous développez dans Unity, il est souvent essentiel de conserver certaines données, même après la fermeture du jeu ou de l’application. La persistance des données permet de sauvegarder des informations comme des scores, des paramètres de jeu, ou des préférences utilisateur . Unity propose une solution simple et pratique pour ce genre de tâches : PlayerPrefs .
PlayerPrefs est une classe fournie par Unity permettant de sauvegarder et de récupérer des données simples comme des entiers, des flottants et des chaînes de caractères. Elle est idéale pour des données qui ne nécessitent pas un système complexe de gestion de fichiers.
- Méthodes de PlayerPrefs
Méthode | Description |
---|---|
SetInt(string key, int value) | Sauvegarde un entier sous une clé donnée. |
GetInt(string key, int defaultValue) | Récupère un entier sauvegardé. Renvoie defaultValue si la clé n’existe pas. |
SetFloat(string key, float value) | Sauvegarde un flottant sous une clé donnée. |
GetFloat(string key, float defaultValue) | Récupère un flottant sauvegardé. Renvoie defaultValue si la clé n’existe pas. |
SetString(string key, string value) | Sauvegarde une chaîne de caractères sous une clé donnée. |
GetString(string key, string defaultValue) | Récupère une chaîne sauvegardée. Renvoie defaultValue si la clé n’existe pas. |
DeleteKey(string key) | Supprime la donnée associée à la clé. |
DeleteAll() | Supprime toutes les données sauvegardées. |
HasKey(string key) | Vérifie si une clé donnée existe déjà. |
Pour illustrer, nous allons utiliser PlayerPrefs pour sauvegarder et récupérer un bestScore (meilleur score) dans un jeu. Nous allons veiller à ce que le meilleur score soit initialisé correctement, même si aucun score n’a été encore sauvegardé.
Voici un script Unity appelé ScoreManager qui gère la sauvegarde et la récupération des scores :
usingUnityEngine;
publicclassScoreManagerDemo : MonoBehaviour {
[SerializeField] privateintcurrentScore = 0;
[SerializeField] privateintbestScore = 0;
privatevoidStart() {
// Vérifier si un "BestScore" existe, sinon initialiser à 0
if (PlayerPrefs.HasKey("BestScore")) {
bestScore = PlayerPrefs.GetInt("BestScore");
} else {
bestScore = 0;
PlayerPrefs.SetInt("BestScore", bestScore);
}
}
publicvoidUpdateScore(intscore) {
currentScore = score;
// Si le score actuel dépasse le meilleur score, le mettre à jour
if (currentScore > bestScore) {
bestScore = currentScore;
PlayerPrefs.SetInt("BestScore",
bestScore); // Enregistrer dans PlayerPrefs
}
}
privatevoidOnApplicationQuit() {
// Sauvegarder le meilleur score lors de la fermeture de l'application
PlayerPrefs.SetInt("BestScore", bestScore);
}
}
- PlayerPrefs.HasKey(« BestScore ») :Vérifie si une clé « BestScore » existe déjà. Si ce
n’est pas le cas, elle est initialisée à 0.
- PlayerPrefs.SetInt(« BestScore », bestScore) :Cette méthode enregistre le meilleur
score actuel dans les préférences utilisateur.
- OnApplicationQuit() :S’assure que le meilleur score est sauvegardé lorsque
l’application se ferme.
Mauvaise gestion des clés : Oublier de vérifier l’existence d’une clé avec HasKey() peut conduire à des erreurs, car les clés sont sensibles à la casse et doivent être précises.
Maintenant que vous avez vu comment utiliser PlayerPrefs pour persister des données dans Unity, l’étape suivante consiste à explorer les coroutines . Ces dernières permettent de gérer des tâches s’étalant sur plusieurs frames, comme des animations ou des temps d’attente.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce que PlayerPrefs dans Unity ?
Comment sauvegarder un score avec PlayerPrefs ?
Quelles sont les méthodes principales de PlayerPrefs ?
Comment éviter les erreurs courantes avec PlayerPrefs ?
Comment s'assurer que les données sont enregistrées à la fermeture de l'application ?
Conclusion
En maîtrisant l’utilisation de PlayerPrefs dans Unity, vous pouvez facilement gérer la persistance des données essentielles pour votre jeu. Quelle sera votre prochaine étape pour améliorer la gestion des données dans vos projets Unity ?