Bonjour,
Je travail présentement sur un jeu qui sera disponible sur android. Comme je n'ai jamais travaillé avec PlayerPrefs, j'ai besoin de votre aide pour créer un script c# qui permettra de sauvegarder des variables. Mon jeu est un clicker, le joueur doit appuyer sur un bouton pour faire de l'argent avec laquelle il achète des items pour faire plus d'argent/sec et + d'argent/click. Les variables à sauvegarder sont l'argent du joueur et les conteurs. Les conteurs sont le nombre de fois que le joueur achète chaque item. Si il achète un item à 100$ il sera grâce au conteur 115$ si il l'achete encore une fois(1.15x plus cher à chaque achat). Pour ce qui est de la sauvegarde je veux un systeme qui sauvegarde sans que le joueur est à cliquer sur un bouton, mais je veux tout de même un bouton CLEAR_DATA pour recommencer sa progression, merci! Demandez moi pour savoir le contenu de mes autres scripts afin de faire le script de sauvegarde.
[C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
[C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)
Dernière édition par Therlys le 25 Mai 2016 14:07, édité 1 fois.
Re: [C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)
Bonjour,
Déjà je peux te renvoyer vers la documentation Unity des PlayerPref qui explique très bien comment charger une valeur (GetFloat, GetInt, GetString) et écrire une valeur (SetFloat, SetInt, SetString). Il ne faut juste pas oublier de faire un Save() après pour bien sauvegarder tout ça.
Pour que ce soit automatique tu as plusieurs solutions. Soit tu fais ton Save() dès que tu écris un changement de valeur (Avec le Get...). Mais ça peut être trop goumant si tu le fais un Update() ou trop souvent (Ça fonctionne très bien si c'est pour une update d'un bâtiment par exemple).
Une deuxième méthode c'est le faire toutes les X secondes, mais tu risques de perdre des données si le joueur quitte l'application entre deux sauvegardes automatiques. Donc tu peux aussi utiliser le OnApplicationQuit() qui te permet de savoir quand le jeu va être quitté afin de faire tes sauvegardes à ce moment-là.
A toi de voir ce qui te conviens le mieux.
Enfin, pour faire un bouton "CLEAR_DATA" comme tu le dis, c'est assez facile grâce au DeleteAll ou DeleteKey du PlayerPref.
Enfin, pour répondre à ta demande globale, je ne te ferais pas ton script parce que déjà ça serait une perte de temps pour toi et pour moi. Je pense que tu as toutes les informations à ta disposition pour le faire et c'est relativement facile à faire.
Si tu as d'autres questions sur des problèmes, n'hésites pas. Mais personnellement je ne te ferai jamais un script de but en blanc. Ça serait contre-productif (Si une âme charitable veut te le faire, ça ne me pose pas de problème mais je ne pense pas que ça soit la philosophie du forum).
Déjà je peux te renvoyer vers la documentation Unity des PlayerPref qui explique très bien comment charger une valeur (GetFloat, GetInt, GetString) et écrire une valeur (SetFloat, SetInt, SetString). Il ne faut juste pas oublier de faire un Save() après pour bien sauvegarder tout ça.
Pour que ce soit automatique tu as plusieurs solutions. Soit tu fais ton Save() dès que tu écris un changement de valeur (Avec le Get...). Mais ça peut être trop goumant si tu le fais un Update() ou trop souvent (Ça fonctionne très bien si c'est pour une update d'un bâtiment par exemple).
Une deuxième méthode c'est le faire toutes les X secondes, mais tu risques de perdre des données si le joueur quitte l'application entre deux sauvegardes automatiques. Donc tu peux aussi utiliser le OnApplicationQuit() qui te permet de savoir quand le jeu va être quitté afin de faire tes sauvegardes à ce moment-là.
A toi de voir ce qui te conviens le mieux.
Enfin, pour faire un bouton "CLEAR_DATA" comme tu le dis, c'est assez facile grâce au DeleteAll ou DeleteKey du PlayerPref.
Enfin, pour répondre à ta demande globale, je ne te ferais pas ton script parce que déjà ça serait une perte de temps pour toi et pour moi. Je pense que tu as toutes les informations à ta disposition pour le faire et c'est relativement facile à faire.
Si tu as d'autres questions sur des problèmes, n'hésites pas. Mais personnellement je ne te ferai jamais un script de but en blanc. Ça serait contre-productif (Si une âme charitable veut te le faire, ça ne me pose pas de problème mais je ne pense pas que ça soit la philosophie du forum).
Re: [C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)
Merci pour ta réponse, je vais aller consulter la section du forum que tu m'a conseillé et je vais commencer le script. Si jamais j'ai d'autres questions, je vais les écrires dans mon sujet. Merci beaucoup!
PS : Je me suis mal exprimé, quand je parlais de faire le script je parlais ensemble (Avec l'aide d'une personne comme tu l'as fait). En me relisant j'ai compris que c'était pas évidant!
Jérémie
PS : Je me suis mal exprimé, quand je parlais de faire le script je parlais ensemble (Avec l'aide d'une personne comme tu l'as fait). En me relisant j'ai compris que c'était pas évidant!
Jérémie
Re: [C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)
Bonjour,
pour le bouton DELETE_DATA j'ai fait ce script. Crois-tu quel est bien? Tu avais raison avec les fonctions PlayerPrefs c'est simple.
J'ai mis le script sur un Manager (Empty) et ensuite sur le bouton DELETE DATA j'ai mis la fonction (On Click ()).
Dit moi si tout est correct.
Merci,
Jeremie
pour le bouton DELETE_DATA j'ai fait ce script. Crois-tu quel est bien? Tu avais raison avec les fonctions PlayerPrefs c'est simple.
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class DeleteData : MonoBehaviour {
public void DELETE_DATA () {
PlayerPrefs.DeleteAll ();
Debug.Log ("DATA DELETED");
}
}
Dit moi si tout est correct.
Merci,
Jeremie