[Résolu] RemoveListener au destroy d'un bouton

Questions à propos du GUI, y compris la partie script.
Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

[Résolu] RemoveListener au destroy d'un bouton

Message par Greg » 06 Juin 2017 13:27

Salut salut,

alors déjà pour le titre du sujet, je vois que beaucoup commence par [DB] ou [DB-AL] ou autre [MY]... je n'ai pas la moindre idées de quoi que c'est donc merci de pas me fouetter si il fallait que j'en mette. :mrgreen:

Je ne parviens pas à trouver de réponses claires à propos des onClick Listeners et comme à son habitude, le manuel n'est pas très prolixe.

1 - Est-ce que quelqu'un sait si le RemoveListener qui supprime un listener non persistant d'un button.onClick doit nécessairement être appelé si le bouton est détruit?


2 - Est-ce que faire

Code : Tout sélectionner

button.GetComponent<Button>().onClick.RemoveListener(() => MaFonction());
sans spécifier les attributs de MaFonction(attribut1, attribut2) fonctionne?


3 - Le RemoveAllListeners supprime tous les listeners non persistants de l'event. Donc, si j'ai bien compris, si je l'appel sur le onClick, il va supprimer tous mes listeners de tous mes boutons. Peut-on supprimer dynamiquement tous les listeners d'un bouton spécifique?


4 - Enfin, connaissez-vous une commande pour afficher une liste des events de l'eventSystem genre :

Code : Tout sélectionner

print(eventSystem.Invoke());
qui bien entendu ne fonctionne po? :langue3:

Merci d'avoir lu tout ça :merci:
Dernière édition par Greg le 06 Juin 2017 16:30, édité 1 fois.
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

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

Re: RemoveListener au destroy d'un bouton

Message par boubouk50 » 06 Juin 2017 14:38

Greg a écrit :alors déjà pour le titre du sujet, je vois que beaucoup commence par [DB] ou [DB-AL] ou autre [MY]... je n'ai pas la moindre idées de quoi que c'est donc merci de pas me fouetter si il fallait que j'en mette. :mrgreen:
Les tags sont uniquement réservés pour le code (donc Section C# et Js), ils donnent des indications: RS = réseau, AL = algo, MY = niveau moyen, DB = niveau débutant, 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
evereal
Messages : 109
Inscription : 06 Nov 2015 18:46

Re: RemoveListener au destroy d'un bouton

Message par evereal » 06 Juin 2017 15:41

1) non

2) non
Une expression lambda est une fonction anonyme.
Si tu vx retirer un événement de OnClick, tu dois garder une référence a cette fonction au moment ou tu la crée, ce qui devrait donner plus haut dans ton code, au niveau du AddListener

Code : Tout sélectionner

UnityAction myEvent = () => { MaFonction(); };
button.onClick.AddListener(myEvent);
...
button.onClick.RemoveListener(myEvent);
3) la méthode removeListener ne va pas supprimer les event de tout tes boutons, seulement celui sur lequel il est appelé.

4) Ok il y a un petit problème de compréhension.
L'eventSystem est un petit processus qui va aider le joueur et l'interface graphique à se comprendre.
Il va contrôler les input du joueur, calculer les raycast souris pour savoir ou le joueur clique etc... et ensuite dire a tel panel ou tel bouton "hého réveille toi, le joueur ta cliqué dessus, fait ton taff!". En aucun cas l'eventSystem ne gère les piles d’évent des boutons de ta scène, chaque bouton à sa liste d'action a effectuer lorsqu’il se fait cliquer dessus.

Ensuite, si tu vx savoir a un moment de ton code, quels sont tout les événements qui seront produits par un bouton si l'on clique dessus, tu px aller voir de ce coté : https://msdn.microsoft.com/en-us/librar ... .110).aspx
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

[Résolu] Re: RemoveListener au destroy d'un bouton

Message par Greg » 06 Juin 2017 16:31

ok parfait, c'est tout ce qui me manquait et je galérais! ^^

merci bien :merci:
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Répondre

Revenir vers « L'interface GUI »