IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

Modifier une variable d'une scène à l'autre [Unity 5]


Sujet :

Unity

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Modifier une variable d'une scène à l'autre
    Bonjour, j'ai créé un slider dans une scène nommée "Paramètres" de mon futur logiciel. J'aimerais que celui-ci modifie une variable "nbCellules" sur une autre scène "Simulation".
    Après de nombreuses recherches, j'ai essayé avec la classe PlayerPrefs afin de stocker la variable sur le disque dur.

    Cependant, la variable que je souhaitais modifier se base sur le nombre en bas à droite (le 10), mais j'aimerais bien que la valeur change avec le slider...
    Nom : 1.jpg
Affichages : 537
Taille : 29,9 Ko

    Voici mon code :

    (là le script sur lequel le slider agira)
    Nom : 2.jpg
Affichages : 524
Taille : 37,1 Ko

    puis ce que ça modifie sur une autre scène
    Nom : 3.jpg
Affichages : 533
Taille : 65,8 Ko

    Merci !

  2. #2
    Membre expérimenté Avatar de Tonton Nico
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 398
    Points : 1 320
    Points
    1 320
    Par défaut
    Salut Lala43,

    Si j'ai bien compris ta problématique est plutôt sur le process en général, pour ma part je dirais:

    Tu dois avoir un script "général" par exemple TotoScriptGeneral avec toute les variables que tu as besoins pour ton logiciel (cf Object.DontDestroyOnLoad si tu as plusieurs scènes pour info pour garder tout en vie)

    1. Tu charges ta clé via le PlayerPrefs (PlayerPrefs.GetString) si celle-ci existe on sait jamais (PlayerPrefs.HasKey) dans ta variable NbCellules par exemple
    2. Sur ton slider en event tu mets un script qui va venir changer la valeur du script général TotoScriptGeneral.NbCellules dès que le joueur va y toucher
    3. Quand tu vas lancer la simulation tu viendras donc utiliser ta variable TotoScriptGeneral.NbCellules qui aura la bonne valeur
    4. Bien sur ne pas oublier de faire un PlayerPrefs.SetString au moment que tu jugeras opportun (dans un script lié à un bouton "save" ou dans un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void OnApplicationQuit()
    )

    Après y a surement d'autres solutions mais cela devrait fonctionner

    En espérant que cela t'aide

    TontonNico
    TontonNico

    On me dit souvent que je ressemble à Einstein... mais plutôt à Frank que Albert

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour, et merci beaucoup de ta réponse !

    J'ai modifié mon code ;

    Nom : bandicam 2019-01-19 12-04-11-046.jpg
Affichages : 471
Taille : 76,2 Ko


    Nom : bandicam 2019-01-19 12-04-14-644.jpg
Affichages : 474
Taille : 52,3 Ko


    Nom : bandicam 2019-01-19 12-04-17-597.jpg
Affichages : 474
Taille : 50,8 Ko

    Le premier script est sur une autre scène
    Le deuxième script est attaché à un bouton me permettant de changer de scène
    Le dernier est celui utilisé par le slider


    Cependant, le nombre de gameObjects qui apparaît sur une autre scène, grâce au premier script ne change pas...


    (Le + sur le dernier script s'est rajouté au dernier momet, l'erreur ne vient pas de là)

  4. #4
    Membre expérimenté Avatar de Tonton Nico
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 398
    Points : 1 320
    Points
    1 320
    Par défaut
    Je ne pensais pas à une architecture de la sorte, c'est surement pas dans les pratiques de base mais y a pas de raison que cela ne fonctionne pas


    Remarque bête mais ce n'est pas juste ton ordre entre ton LoadLevel et ton SetFloat qui sont inversés tout simplement?
    à voir comment les events se stack mais si tu charges ta scène "Menu" et que cela active ton void start de CellScript alors ton setfloat de ton GoMenu ne sera pas effectif et donc ta variable vaudra toujours 100f non?

    TontonNico
    TontonNico

    On me dit souvent que je ressemble à Einstein... mais plutôt à Frank que Albert

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai empiré mon architecture encore, et j'ai inversé l'ordre comme tu l'as dit

    Ça marche enfin, je suis vraiment reconnaissant de tes réponses, j'ai bien galéré

    Merci beaucoup, et bonne continuation !

  6. #6
    Membre expérimenté Avatar de Tonton Nico
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 398
    Points : 1 320
    Points
    1 320
    Par défaut
    Prends le temps d'avoir une bonne base quand même mais niquel si ça marche
    TontonNico

    On me dit souvent que je ressemble à Einstein... mais plutôt à Frank que Albert

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/03/2016, 16h23
  2. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  3. Modifier une variable d'une classe depuis une autre classe
    Par Kezado dans le forum Général Java
    Réponses: 8
    Dernier message: 23/09/2010, 14h52
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. [debutant]passager une variable d'une page a une autre
    Par Eisy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo