Je construis une application de calculatrice simple dans l'unité. Ma variable FiKeNumber est attribuée à une valeur, mais se met à zéro lorsque la méthode égale est appelée. Je ne peux pas comprendre ce qui le redonne à zéro. J'ai ajouté une capture d'écran du Console Unity pour vous aider à expliquer.
3 Réponses :
Vous devez supprimer ou modifier la position de INPUTBOX.Text = "0"; code> à partir de Ajouter (). Vous définissez des variables à 0 à tort p>
Mon premier conseil est que vous créez réellement une nouvelle instance de votre objet de calculatrice. Vous pouvez vérifier si tel est le cas en utilisant la fonctionnalité "Make ID d'objet" si vous utilisez Visual Studio. Sinon, vous pouvez utiliser une technique telle que décrite ici: Comment imprimer un identifiant d'objet? à Vérifiez s'ils sont en fait la même instance d'objet. P>
Je ne connais pas le moteur Unity lui-même mais je ne serais pas surpris si une sorte de code contraignant est responsable de la génération de la nouvelle instance. P> prénomnumber code> prendrait sa valeur par défaut de zéro sur la nouvelle instance. P>
J'ai utilisé un gethashcode pour vérifier et vous avez raison. Ils ne sont pas le même objet, sa création d'une nouvelle instance. Mais je ne suis pas sûr de quoi faire avec ça. Comment puis-je le résoudre à la création d'une nouvelle instance?
Instanciez-vous l'objet ailleurs? Comment appelez-vous votre code de calcul?
Vous initialisez le champ de texte avec zéro et chaque fois que cela s'appelle le résultat devient zéro p>
La classe est probablement un exemple différent. Je ne suis pas assez familier avec l'unité de savoir, cependant.
Je suis avec Batman, s'il vous plaît ajouter
débog.log ("Démarrer"); code> dans la méthode de démarrage et postez à nouveau les journaux de débogage.D'AILLEURS.
Si (INPUTBOX.TEXT == "0" && INPUTBOX.Text! = NULL) CODE> N'a pas besoin de && ou vous devez vérifierinppoxy.text! = null code> séparément.Vous n'avez pas besoin de vérifier pour NULL si vous vérifiez
"0" code>.