[RESOLU]Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Questions à propos du GUI, y compris la partie script.
pierrearchi
Messages : 12
Inscription : 08 Mai 2020 14:30

[RESOLU]Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Message par pierrearchi » 08 Mai 2020 16:37

Bonjour, j'essaie d'adapter ce tuto de 2016 , https://youtu.be/AINvWlnsny0 pour réaliser un quizz pour mon projet pro dans le canvas... problème je souhaite utiliser la fonction TextMeshPro à la place de l'ancienne fonction text(utilisée dans la vidéo). La recup et le remplacement des valeurs type TextMeshPro dans le canva par les valeurs d'un tableau (de question avec reponses) ne fonctionne pas ... Merci d'avance.
Pierre
Pièces jointes
CaptureCode2.PNG
CaptureCode2.PNG (404.6 Kio) Consulté 4346 fois
Dernière édition par pierrearchi le 08 Mai 2020 18:28, édité 1 fois.

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

Re: Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Message par Max » 08 Mai 2020 16:45

Bonjour Pierre,

En fait, au niveau de ton script, il faut que tu fasse référence à la lib TMPro, en plaçant dans les using la ligne

Code : Tout sélectionner

using TMPro;
Normalement, cela devrait solutionner ton problème.

PS: quand tu postes un code, plutôt qu'un screen, poste le listing directement dans ton message, via les bonne balises (lire ici: Poster un script).
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

pierrearchi
Messages : 12
Inscription : 08 Mai 2020 14:30

Re: Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Message par pierrearchi » 08 Mai 2020 18:25

Merci Max pour ton retour. Je n'avais pas oublie le "using TMPro;"
En revanche le code ne produit rien apres compilation. J'obtiens cette erreur dans visual que je ne comprends pas ...:

Code : Tout sélectionner

{
	"resource": "/C:/Users/pierr/Desktop/ProjetCertification/Unity/Caneillesv1/Assets/PROJET CANEILLES/Scripts/Quiz.cs",
	"owner": "csharp",
	"code": "CS0246",
	"severity": 8,
	"message": "Le nom de type ou d'espace de noms 'TextMeshProUGUI' est introuvable (vous manque-t-il une directive using ou une référence d'assembly ?) [Assembly-CSharp]",
	"source": "csharp",
	"startLineNumber": 8,
	"startColumn": 12,
	"endLineNumber": 8,
	"endColumn": 27
}


Bien compris le conseil pour poster le code source :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class Quiz : MonoBehaviour{

    public TextMeshProUGUI TxtQuestion;

     // declaration tableau
    string[] Quizz = new string[3];

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

        //Composant
        TxtQuestion =TxtQuestion.GetComponent<TextMeshProUGUI>() ;
        //TxtQuestion = GetComponent<TextMeshPro>() ?? gameObject.AddComponent<TextMeshPro>();

        //Declaration contenu du tableau
        Quizz[0]="Quelle est la longueur du tunnel Aragnouet Bielsa ?,3070,2060,3070";
        Quizz[1]="Quelle est la hauteur du barrage de Cap de Long ?,135,101,101";
        Quizz[2]="Quelle est l'altitude du lac d'Oredon ?,1849,1326,1849";
        
        //TxtQuestion.settext=Quizz[1];
        TxtQuestion.setText(Quizz[1]) ;
        
    }

    // Update is called once per frame
    void Update()
    {
        
        //TxtQuestion.setText(Quizz[1].toString()) ;
    }
}

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

Re: Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Message par Max » 08 Mai 2020 18:41

En parcourant ton code, je dirais que tu sembles avoir plusieurs soucis.

Le premier, un soucis de case, il faut écrire Start et non pas start (même si à la base, cela ne produira pas d'erreur à la compilation du script)

En suite, la ligne TxtQuestion.setText(Quizz[1]); n'est pas correcte. TextMeshProUGUI ne comporte pas de méthode appelée "setText()". Dans ton cas, tu devrais plutôt écrire TxtQuestion.text = Quizz[1];.

Autre soucis, la ligne TxtQuestion =TxtQuestion.GetComponent<TextMeshProUGUI>() ;. Tu dois récupérer le component sur le GameObject souhaité. Là tu cherches à récupérer le component d'un component. Soit le component se trouve sur le même objet que ton script, alors dans ce cas il faut juste écrire TxtQuestion = GetComponent<TextMeshProUGUI>() ;, soit le script se trouve sur un autre GameObject, alors dans ce cas il faut renseigner la donnée publique de ton script au niveau de l'inspector avec le component du GameObject désiré.
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

pierrearchi
Messages : 12
Inscription : 08 Mai 2020 14:30

Re: Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Message par pierrearchi » 08 Mai 2020 19:57

Merci beaucoup Max ... j'apporte ces modifications .... :super:

pierrearchi
Messages : 12
Inscription : 08 Mai 2020 14:30

Re: Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Message par pierrearchi » 08 Mai 2020 20:19

Cela marche impeccablement bien ....
J'avis aussi oublié en tant que newby de faire pointer le script via l'inspector ...
Merci encore ... Je suis heureux de terminer la journée avec ce point résolu ...tant d'autres m'attendent .... :amen:

Pour info, la conception avançée du quizz peut être retrouvée dans la formation complete de dev de JP parrein sur Udemy ... Je viens de m'en rendre compte :pleur4:
Pièces jointes
Capture3.PNG
Capture3.PNG (9.51 Kio) Consulté 4290 fois

pierrearchi
Messages : 12
Inscription : 08 Mai 2020 14:30

Re: [RESOLU]Adaptation Quizz - Recup et remplac. valeur TextMeshPro

Message par pierrearchi » 22 Mai 2020 09:26

Pas d'erreur de code d'origine en definitive ! :rouge:

Plutot un soucis(bug) d'affichage du canvas scaler ... X( j'ai modifié la "reference resolution" du canvas scaler (je suis passé de 800x600 que je n'avais pas modifié à 1600x1200) ... et la question est apparue ...enfin !. Depuis cette modif, en remettant 800x600 en resolution du canvas scaler, la question apparait impeccable (???) et apparait désormais aussi dans la case text de l'inpecteur du canvas (avant rien)... :gene:

Répondre

Revenir vers « L'interface GUI »