Unity système de sauvegarde

Fermé
rKouyale Messages postés 8 Date d'inscription lundi 31 juillet 2017 Statut Membre Dernière intervention 31 décembre 2017 - Modifié le 24 sept. 2017 à 19:18
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 24 sept. 2017 à 19:44
Bonjour,

Je suis actuellement en train de développer un jeu via Unity qui ressemble à Cookie Clicker mais qui se nomme Burger Clicker et j'aimerais y insérer un système de sauvegarde pour quand le joueur quitte le jeu, qu'il ne perde pas ses Burger obtenus.

Voici le code :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Click : MonoBehaviour {

    public UnityEngine.UI.Text gpc;
    public UnityEngine.UI.Text goldDisplay;
    public float gold = 0.00f;
    public int goldperclick = 1;

    void Update()
    {
        goldDisplay.text = "Burgers : " + gold.ToString("F0");
        gpc.text = goldperclick + " BURGER PAR CLIQUE";
    }

    public void Clicked()
    {
        gold += goldperclick;
    }

    }
}
A voir également:

1 réponse

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
24 sept. 2017 à 19:44
Bonjour,

je ne connais pas précisément Unity, mais comme c'est basé sur C#, il existe le fichier App.Config, dans lequel tu pourrais stocker le nombre de burgers.
Voir
https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff660846(v=pandp.20)?redirectedfrom=MSDN

En plus j'ai quelques remarques concernant ton code.
  • C# est à minima un langage 32 bits. Donc utiliser des types 16 bits, à part pour parler à des logiciels 16 bits, ne sert à rien, même pas à gagner de la RAM, car tes 16 bits seront stockés sur la première moitié d'un mot 32 bits et le reste sera vide. Donc privilégier double à float.
  • gold est un décimal, mais la seule opération que tu fais dessus est d'ajouter un entier, ce qui implique une conversion implicite. Si les 2 étaient des entiers, se serait plus cohérent et efficace.
  •  gpc.text = goldperclick + " BURGER PAR CLIQUE"; }
    si Unity tolère ça (ça n'est pas le cas de C#), je ne peux que te le déconseiller, gpc.text est probablement une string, " BURGER PAR CLIQUE" est une string, et goldperclick est un nombre, on ne mélange pas les torchons et les serviettes. Tu peux écrire ça
     gpc.text = goldperclick.ToString() + " BURGER PAR CLIQUE"; }
    , ou mieux (si ça existe en Unity)
     gpc.text = string.Format("{0} BURGER PAR CLIQUE",goldperclick); }

0