Trouver l'enfant Text d'un clone image UI

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
laurent357
Messages : 96
Inscription : 23 Juil 2012 16:35
Localisation : Belgique

Trouver l'enfant Text d'un clone image UI

Message par laurent357 » 21 Oct 2015 16:01

Bonjour à toutes et à tous,

Je suis sur un stupide problème et je n'arrive pas à le résoudre.

Je clone un prefab constitué d'une image dans laquelle se trouve un champ texte (pour faire une liste numérotée).
Le champ texte est donc enfant de l'image.

Dans ma boucle, je voudrais que le numéro apparaissant dans mon champ texte soit le numéro du compteur (le truc ultra classique quoi :roll: )
Le problème, c'est que je n'arrive pas à cibler l'enfant de l'image (donc mon champ texte)

Ce code fonctionne :

Code : Tout sélectionner

for(int i=0;i<int_nbDropZone;i++) {
	GameObject clone;
	clone = Instantiate(go_ToReplicate);
	clone.transform.SetParent(GameObject.FindGameObjectWithTag(str_panelTag).transform);
}
Avec ça, j'ai bien toutes mes puces, sauf qu'évidemment, le champ txt se trouvant dans ces puces est vide.

J'ai trituré le truc dans tout les sens, mais rien à faire, Unity me remballe toujours une erreur.
Voici ma dernière tentative pour accéder au champs texte. Je place cette ligne à la suite de la ligne "clone.transform.setParent......" :

Code : Tout sélectionner

Text numberTxt = clone.gameObject.Find("Number") as Text;
Ça vous paraitra peut-être totalement biscornu comme ligne de code, mais je ne sais plus quoi écrire... :pleur4:

Merci pour votre aide.
[Laurent]

Ohms
Messages : 19
Inscription : 19 Oct 2015 17:11

Re: Trouver l'enfant Text d'un clone image UI

Message par Ohms » 21 Oct 2015 16:12

As tu essayé de faire un GetComponent pour récupérer le composant associé à ton objet Number, enfant de ton clone ?

Code : Tout sélectionner

   
Text numberTxt = clone.transform.Find("Number").GetComponent<Text>();
Debug.Log(numberTxt.text);

Avatar de l’utilisateur
laurent357
Messages : 96
Inscription : 23 Juil 2012 16:35
Localisation : Belgique

Re: Trouver l'enfant Text d'un clone image UI

Message par laurent357 » 21 Oct 2015 16:30

Bonjour Ohms,

Merci, c'était bien la solution ! :ghee: :ghee: :ghee:

Par contre, cela ne me semble pas du tout logique, car mon objet texte est un GameOject et non pas un Component d'un GameObject.
Ou alors, il y a un truc que j'ai pas du tout capté...

En tout cas, un grand merci pour m'avoir débloqué, je vais pouvoir dormir tranquille cette nuit :-D
[Laurent]

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

Re: Trouver l'enfant Text d'un clone image UI

Message par boubouk50 » 21 Oct 2015 17:00

Text est un GameObject qui possède un Component Text.
"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

Ohms
Messages : 19
Inscription : 19 Oct 2015 17:11

Re: Trouver l'enfant Text d'un clone image UI

Message par Ohms » 21 Oct 2015 17:50

L'explication de boubouk est la bonne.

Si tu n'es toujours pas convaincu, je t'invite à sélectionner ton objet Text, et à regarder dans l'inspector ce que tu y trouves. Tu verras que ton GameObject Text possède (au moins) trois Components :
-RectTransform
-CanvasRenderer
-ettttttt notre fameux composant Text

Et c'est sur composant que se trouve le champs text. C'est pourquoi pour récupérer par script la valeur du champs text, tu dois passer par le composant Text.

Avatar de l’utilisateur
laurent357
Messages : 96
Inscription : 23 Juil 2012 16:35
Localisation : Belgique

Re: Trouver l'enfant Text d'un clone image UI

Message par laurent357 » 21 Oct 2015 21:48

Oui, en fait, c'est tout à fait logique mon capitaine, c'est moi qui raconte absolument n'importe quoi... :gene:

On accède au clone qui contient l'UI Text "Number" qui contient un composant text...fin de journée, fatigué, tout ça, pas taper sur la tête merci.

Merci pour vos précisions.
[Laurent]

Répondre

Revenir vers « Scripting »