0
votes

Je veux réinitialiser le niveau dans l'unité et ne pas réinitialiser la variable aussi

Je veux réinitialiser le niveau dans l'unité et ne pas réinitialiser la variable de la monnaie et la variable de compteur de perte. J'utilise playerprefs code> mais cela ne fonctionne pas pour moi la variable réinitialisée aussi.

public int coinAmount;   
public Text text;
void Start()
{
    text = GetComponent<Text>();
}
void Update()
{
    text.text = coinAmount.ToString() + " coins";
}


3 commentaires

En redémarrage, je supprime les parenthèses en mauvais état


N'utilisez pas Playerprefs pour stocker l'état du jeu.


Essayez d'utiliser des variables statiques


3 Réponses :


1
votes

Assurez-vous que vous appelez LoadData () dans la méthode Start ().

Une fois que vous appelez la méthode "Charger la scène", les lignes de code sous elle ne seront pas appelées.

Assurez-vous que vous appelez LOADDATA () dans la méthode de démarrage ou ONENABLE.

espère que cela aide.


1 commentaires

Merci tu as aidez-moi tellement match



1
votes

i second que Muhammad ellawie a déclaré à propos de la chargement des données dans le Démarrer () méthode. Mais en règle générale, ces données de jeu ne doivent généralement pas faire partie de la scène, vous voudrez peut-être implémenter un Singleton modèle par exemple, de sorte qu'ils ne feraient pas partie de la scène.


1 commentaires

@Thefrogeitan Si une réponse a résolu votre problème, je vous suggère de choisir une comme réponse à votre question. Bienvenue sur Stackoverflow: D



0
votes

Le moyen le plus simple est de dire à l'unité de ne pas détruire votre gestionnaire de jeu: appelez DonTdestroyonload (this.gameObject) dans l'éveil de la monobéhavienne pour le garder en vie après la recharge des scènes.

https://docs.unity3d.com/scriptreference/Object.dontdestroyonload.html


0 commentaires