Importer une variable d'un script dans un autre (C#)

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
MisterJedi
Messages : 85
Inscription : 29 Août 2015 16:57

Importer une variable d'un script dans un autre (C#)

Message par MisterJedi » 02 Sep 2015 16:08

Bonjour tout le monde,

alors voilà j'aimerai importer la variable "score" d'un script (appelé "générateur" qui se trouve dans le gameobject "generation") dans un autre qui se trouve dans une autre scène (appelé "tryagain" qui se trouve dans le gameobject "affichagescore", en gros pour pouvoir afficher le score du jeu à la fin de la partie). J'ai déjà essayé la commande GameObject.GetComponent mais le problème c'est que ces 2 Gameobject sont dans 2 scènes différentes donc unity ne le trouve pas.
Aidez moi svp.

Merci

Avatar de l’utilisateur
@RLG
Messages : 367
Inscription : 17 Jan 2015 00:13
Localisation : Rennes

Re: Importer une variable d'un script dans un autre (C#)

Message par @RLG » 02 Sep 2015 16:15

Tu ne peux pas récupérer comme ça des infos entre deux scènes.

Tu peux regarder avec les "PlayerPrefs" pour stocker quelques variables.
Sinon regarde ce que fait "DontDestroyOnLoad", ça te permettra de garder certains GameObject entre tes changements de scène.
Everything happens for a reason. Sometimes the reason is that you're stupid and make bad decisions.

MisterJedi
Messages : 85
Inscription : 29 Août 2015 16:57

Re: Importer une variable d'un script dans un autre (C#)

Message par MisterJedi » 02 Sep 2015 16:54

Merci pour la réponse. Mais je débute en c# et j'ai essayé la commande DontDestroyOnLoad, mais lorsque je veux choisir le game object a ne pas détruire, "generation" n'apparait pas en proposition. De plus je ne sais pas à quel endroit placer cette commande (sûrement avant l'instruction gameover() qui change de scène :?:

Avatar de l’utilisateur
Max
Messages : 8801
Inscription : 30 Juil 2011 13:57
Contact :

Re: Importer une variable d'un script dans un autre (C#)

Message par Max » 02 Sep 2015 17:05

MisterJedi a écrit :Mais je débute en c# et j'ai essayé la commande DontDestroyOnLoad, mais lorsque je veux choisir le game object a ne pas détruire, "generation" n'apparait pas en proposition. De plus je ne sais pas à quel endroit placer cette commande (sûrement avant l'instruction gameover() qui change de scène :?:
Il faut un script attaché à cet object.
Pour le reste, c'est dans la doc: http://docs.unity3d.com/ScriptReference ... nLoad.html
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
@RLG
Messages : 367
Inscription : 17 Jan 2015 00:13
Localisation : Rennes

Re: Importer une variable d'un script dans un autre (C#)

Message par @RLG » 02 Sep 2015 17:12

Si tu veux juste conserver ton score entre plusieurs scènes, les PlayerPrefs sont sans doute plus adaptés à ton cas :

http://docs.unity3d.com/ScriptReference ... asKey.html

http://docs.unity3d.com/ScriptReference ... etInt.html

http://docs.unity3d.com/ScriptReference ... etInt.html
Everything happens for a reason. Sometimes the reason is that you're stupid and make bad decisions.

MisterJedi
Messages : 85
Inscription : 29 Août 2015 16:57

Re: Importer une variable d'un script dans un autre (C#)

Message par MisterJedi » 02 Sep 2015 18:47

Merci j'ai réussi à trouver une vidéo qui expliquait bien les PlayerPrefs et ça marche :-D
https://www.youtube.com/watch?v=h37OIxQ3ZBU

Avatar de l’utilisateur
ZeroKcm
Messages : 175
Inscription : 09 Juil 2013 21:16

Re: Importer une variable d'un script dans un autre (C#)

Message par ZeroKcm » 09 Sep 2015 21:28

Une idée comme ça, les variables static de classe ne sont pas conservées d'une scene à l'autre ?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6265
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Importer une variable d'un script dans un autre (C#)

Message par boubouk50 » 10 Sep 2015 09:11

Elles le peuvent si l'objet avec le script est "DontDestroyOnLoad"
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Scripting »