[C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)

Pour les scripts écrits en C#
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
Therlys
Messages : 5
Inscription : 23 Mars 2016 02:18

[C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)

Message par Therlys » 24 Mai 2016 23:17

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.
Dernière édition par Therlys le 25 Mai 2016 14:07, édité 1 fois.

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: [C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)

Message par simonj » 25 Mai 2016 00:13

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).

Therlys
Messages : 5
Inscription : 23 Mars 2016 02:18

Re: [C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)

Message par Therlys » 25 Mai 2016 01:47

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

Therlys
Messages : 5
Inscription : 23 Mars 2016 02:18

Re: [C#] Problème au niveau de la sauvegarde automatique (Jeu Mobile)

Message par Therlys » 25 Mai 2016 03:37

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.

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class DeleteData : MonoBehaviour {

    public void DELETE_DATA () {
    PlayerPrefs.DeleteAll ();
	Debug.Log ("DATA DELETED");
	}
}
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

Répondre

Revenir vers « (C#) CSharp »