[Résolu]extration de variables

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
stigma
Messages : 1440
Inscription : 17 Nov 2012 18:29
Localisation : Perdu dans les mondes de Myst
Contact :

[Résolu]extration de variables

Message par stigma » 21 Mai 2024 15:04

Je voudrais savoir s'il y a un moyen pour afficher certaines variables globales afin de les afficher dans un fichier texte à chaque lancement du jeu?
Merci
Dernière édition par stigma le 23 Mai 2024 08:36, édité 1 fois.

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

Re: extration de variables

Message par boubouk50 » 21 Mai 2024 16:15

Tu utilises deux fois mal le verbe afficher, je crois :-D
Tu veux les sortir quand le jeu est en cours pour connaître leur valeur
ou
Tu veux les sortir pour définir leur valeur depuis l'extérieur ?

Le plus simple, est de faire des Debug.Log () qui renvoie la ou les valeurs souhaitées et de consulter le log de l'application dans les AppData.
Sinon, il y a la possibilité de les afficher en direct dans un UI et faire en sorte que cet UI ne soit active seulement lors d'un appui très précis de certaines touches.
Enfin, il reste les PlayerPrefs. Tu peux lire et écrire les données directement depuis la base de registre

Après, c'est de l'écriture / lecture dans des fichiers. Il faut dev (y'a plein d'exemples partout) un script dédié (File.IO, FileStream, etc.).
"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

Avatar de l’utilisateur
jmhoubre
Messages : 866
Inscription : 05 Oct 2019 22:05

Re: extration de variables

Message par jmhoubre » 21 Mai 2024 17:10

Sans oublier l'excellent Quantum Console, souvent à prix réduit.

Avatar de l’utilisateur
stigma
Messages : 1440
Inscription : 17 Nov 2012 18:29
Localisation : Perdu dans les mondes de Myst
Contact :

Re: extration de variables

Message par stigma » 21 Mai 2024 18:56

Je veux juste connaître leurs valeurs quand le jeu est en cours et compilé surtout, sinon je sais comment les voir. J'ai pas mal de globales avec des valeurs aléatoires. Quand je teste mon jeu (compilé), c'est plus rapide à débugguer.

Avatar de l’utilisateur
stigma
Messages : 1440
Inscription : 17 Nov 2012 18:29
Localisation : Perdu dans les mondes de Myst
Contact :

Re: extration de variables

Message par stigma » 22 Mai 2024 08:54

jmhoubre a écrit :
21 Mai 2024 17:10
Sans oublier l'excellent Quantum Console, souvent à prix réduit.
Pour mon cas, 40€, ce n'est pas un prix réduit :roll:

Avatar de l’utilisateur
stigma
Messages : 1440
Inscription : 17 Nov 2012 18:29
Localisation : Perdu dans les mondes de Myst
Contact :

Re: extration de variables

Message par stigma » 22 Mai 2024 11:14

Alors voilà, j'ai un code qui marche...un peu.

Code : Tout sélectionner

using System.IO;
using UnityEngine;

public class ExportGlobalVariables : MonoBehaviour
{
    void Start()
    {
        // Récupérer les valeurs des variables globales
        int torcheLieu = GlobalVariables.Torche_lieu;
        int allumettesLieu = GlobalVariables.allumettes_Lieu;

        // Écrire les valeurs dans un fichier
        WriteGlobalVariablesToFile(torcheLieu, allumettesLieu);
    }

    void WriteGlobalVariablesToFile(int torcheLieu, int allumettesLieu)
    {
        string path = Application.dataPath + "/GlobalVariables.txt";

        using (StreamWriter writer = new StreamWriter(path))
        {
            writer.WriteLine("Torche lieu: " + torcheLieu);
            writer.WriteLine("Allumettes lieu: " + allumettesLieu);
        }

        Debug.Log("Global variables written to " + path);
    }
}
j'appelle mes globales ici

Code : Tout sélectionner

public static class GlobalVariables
{
    public static int Torche_lieu;
    public static int allumettes_Lieu;
}
ça à l'air de marcher, seulement les variables sont à zéro alors qu'elles ont été précédemment définie par une valeur aléatoire dans une action Playmaker.

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

Re: extration de variables

Message par boubouk50 » 22 Mai 2024 17:48

Tu fais un appel dans un Start (), ça veut dire que tes variables globales doivent être initialisées dans un Awake () d'un script actif au départ de ta scène pour être sûr qu'elles soient modifiées avant.

Code : Tout sélectionner

using System.IO;
using UnityEngine;

public class ExportGlobalVariables : MonoBehaviour
{
    private void Update ()
    {
    	if (Input.GetKeyDown (KeyCode.G))
    		WriteGlobalVariablesToFile();
    }

    void WriteGlobalVariablesToFile()
    {
        string path = Application.dataPath + "/GlobalVariables.txt";

        using (StreamWriter writer = new StreamWriter(path))
        {
            // Pas utile de copier la valeur dans une variable, puisque tu as accès a tout moment n'importe où
            writer.WriteLine("Torche lieu: " + GlobalVariables.Torche_lieu);
            writer.WriteLine("Allumettes lieu: " + GlobalVariables.allumettes_Lieu);
        }

        Debug.Log("Global variables written to " + path);
    }
}
De cette manière, quand tu appuies sur la touche G, tu écris dans le fichier texte.
"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

Avatar de l’utilisateur
stigma
Messages : 1440
Inscription : 17 Nov 2012 18:29
Localisation : Perdu dans les mondes de Myst
Contact :

Re: extration de variables

Message par stigma » 22 Mai 2024 18:39

merci Boubouk, je vais tester ça

Répondre

Revenir vers « Scripting »