[DB] Erreurs de syntaxe

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

[DB] Erreurs de syntaxe

Message par MGameur » 22 Mars 2020 22:27

Bonjour,
J'ai fait un script pour mon premier jeux vidéo, je l'ai fait grâce a un tuto sur YouTube. Il consiste a avoir une traduction du texte. J'ai tout fait correctement mais unity me trouve des erreurs. J'ai donc regarder mais je ne les ai pas trouver. Veillez m'aider s'il vous plait.

Voici le code:

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Xml;
using System.Text;
using UnityEngine.UI;

public class xmlReader : MonoBehaviour
{
    public TestAsset dictionary;

    public string languageName;
    public int currentLanguage;

    string Version;
    string Controle;

    // Variable spécifique à l'afffichage UI
    public Text TextVersion;
    public Text TextControle;
    public Dropdouwn selectDropdouwn;

    List<Dictionary<string, string>> languages = new List<Dictionary<string, string>>();
    Dictionary<string, string> obj;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    void Awake ()
    {
        Reader();
    }

    // Update is called once per frame
    void Update()
    {
        languages[currentLanguage].TryGetValue("Name", out languageName);
        languages[currentLanguage].TryGetValue("Version", out Version);
        languages[currentLanguage].TryGetValue("Controle", out Controle);

        // Variable spécifique à l'afffichage UI (affichage de base)
        textVersion.text = Game version: 1.0;
        TextControle.text = Control:		Jump: Space;
    }

    void Reader()
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Loadxml(dictionary.text);
        XmlNodeList languageList = xmlDoc.GetElementsByTagName("language");

        foreach (XmlNode languageValue in languageList)
        {
            XmlNodeList languageContent = languageValue.ChildNodes;
            obj = new Dictionary<string, string>();

            foreach (XmlNode value in languageContent)
            {
                if(value.Name == "Name")
                {
                    obj.Add(value.Name, value.InnerText);
                }

                if(value.Name == "Version")
                {
                    obj.Add(value.Name, value.InnerText);
                }

                if(value.Name == "Controle")
                {
                    obj.Add(value.Name, value.InnerText);
                }
            }

            languages.Add(obj);
        }
    }

    public void ValueChangeCheck()
    {
        currentLanguage = selectDropdouwn.value;
    }
}
Voici les erreurs :
Assets\Script\xmlReader.cs(46,33): error CS1002: ; expected
Assets\Script\xmlReader.cs(47,36): error CS1002: ; expected
Assets\Script\xmlReader.cs(47,36): error CS1513: } expected
il y a aussi ce segong code en xml :

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8">

<languages>

    <language>
        <Name>Français</Name>
        <Version>Version du jeu : 1.0</Version>
        <Controle>Controle:		Saut:Espace</Controle>
    </language>

    <language>
        <Name>English</Name>
        <Version>Game version: 1.0</Version>
        <Controle>Control:		Jump: Space</Controle>
    </language>

</languages>
Comment je peut faire pour régler ce problème.
Merci d'avance pour votre aide.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: Il y a des erreurs qui n'existe pas.

Message par djulio74 » 22 Mars 2020 22:49

Dans ta void update, c'est un ; et non : après control, et un = et non : après jump
La syntaxe est importante.
Quand tu as une erreur dans la console, double clique dessus, ça devrait t'amener au code et à la ligne qui comporte l'erreur

En fait après relecture, tes deux ligne concernant l'affichage gui sont étonnante, vérifie ton tutoriel à ce niveau là

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

Re: Il y a des erreurs qui n'existe pas.

Message par MGameur » 22 Mars 2020 23:01

djulio74 a écrit :
22 Mars 2020 22:49
Dans ta void update, c'est un ; et non : après control, et un = et non : après jump
La syntaxe est importante.
Je te corrige dans mon tuto il dit qu'a cette enplacement on met le texte qu'on veut afficher moi c'est celui-ci

Code : Tout sélectionner

Control:		Jump: Space
Voici le tuto: https://www.youtube.com/watch?v=jVgukYyEURM

Et si je met ce que tu a dit il met met cette erreur
Assets\Script\xmlReader.cs(46,33): error CS1002: ; expected
Après j'ai une idée mais je préfère te le demander. Comme c'est du texte on ne peut pas faire comme sur python c'est a dire ("texte") comme pour le print dans python ou tout symplement faire "texte"? J'ai essayer pour voir et sa me met encore la même erreur :
Assets\Script\xmlReader.cs(46,33): error CS1002: ; expected

MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

Re: Il y a des erreurs qui n'existe pas.

Message par MGameur » 22 Mars 2020 23:10

djulio74 j'ai vue mais il y a la même chose dans la ligne au dessu donc pour voir j'ai fait pareille c'est a dire la "texte" et maintenant il me met ces erreurs
Assets\Script\xmlReader.cs(11,12): error CS0246: The type or namespace name 'TestAsset' could not be found (are you missing a using directive or an assembly reference?)
Assets\Script\xmlReader.cs(22,12): error CS0246: The type or namespace name 'Dropdouwn' could not be found (are you missing a using directive or an assembly reference?)

Avatar de l’utilisateur
Aelhan
Messages : 124
Inscription : 11 Déc 2019 23:00

Re: Il y a des erreurs qui n'existe pas.

Message par Aelhan » 23 Mars 2020 08:21

Bonjour,

Premièrement, évite les titres de ce genre, tu sembles accuser Unity de se tromper... et non.
Et ton titre devrait commencer par [DB-AL] pour indiquer que ta question concerne de l'algorithme niveau débutant (source : l'entête de cette page :viewforum.php?f=89).

Parmi tes erreurs, qui existent réellement, tu as :

Code : Tout sélectionner

    public TestAsset dictionary;
Ce serait plutôt TextAsset ici

Pareil pour

Code : Tout sélectionner

    public Dropdouwn selectDropdouwn;
Je mettrais un truc du genre

Code : Tout sélectionner

    public Dropdown selectDropdown;
(tu peux garder "selectDropDouwn" en nom de variable, ça peut t'éviter de changer le nom partout où tu l'appelles)


Ensuite, dans ton fichier xml, tu as tes variables "Version" et "Controle" utilises les, car ce sont elles qui contiennent le texte que tu veux afficher, ainsi à la place de :

Code : Tout sélectionner

        
        textVersion.text = Game version: 1.0;
        TextControle.text = Control:		Jump: Space;
Tu auras :

Code : Tout sélectionner

        
        textVersion.text = Version;
        TextControle.text = Controle;

Je ne suis pas certain que ce soit tout, mais ça devrait corriger quelques erreurs déjà.
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

Répondre

Revenir vers « Scripting »