[RESOLU]Editor OnSceneGUI Button Pressed Button Released

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

[RESOLU]Editor OnSceneGUI Button Pressed Button Released

Message par EmileF » 09 Mai 2020 20:30

Bonjour,

Je suis en train de créer un éditeur de niveau.
Pour cela, j'utilise l'Editor d 'UnityEditor et OnSceneGUI.
J'essaye d'utiliser GUI.RepeatButton qui selon le manuel d'Unity je cite :" Créez un bouton qui est actif tant que l'utilisateur le maintient enfoncé." voila le lien..
En fait il en est rien et selon les essais que j'ai fait retourne une fois true quand on presse sur le button et de nouveau true quand on le relache.
J'ai parcouru internet de long en large pour trouver une solution mais en vain.

Je voudrai simplement pouvoir détecter quand on presse sur le bouton pour démarrer une action et arrêter cette action quand on relâche ce bouton.

Est-ce que quelqu'un aurait une piste, je rappelle que je suis sur l'éditeur et les OnMouseDown ou OnMouseUp n'existe pas dans l'éditeur, que je ne connais pas d'équivalent et ne sais pas comment les utiliser
Dernière édition par EmileF le 10 Mai 2020 15:17, édité 1 fois.
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

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

Re: Editor OnSceneGUI Button Pressed Button Released

Message par Max » 09 Mai 2020 20:45

Bonjour,
EmileF a écrit :
09 Mai 2020 20:30
J'essaye d'utiliser GUI.RepeatButton qui selon le manuel d'Unity je cite :" Créez un bouton qui est actif tant que l'utilisateur le maintient enfoncé." voila le lien..
En fait il en est rien et selon les essais que j'ai fait retourne une fois true quand on presse sur le button et de nouveau true quand on le relache.
De mon coté, en essayant l'exemple de la doc, le fonctionnement constaté est bien celui décrit dans la doc.
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

EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

Re: Editor OnSceneGUI Button Pressed Button Released

Message par EmileF » 09 Mai 2020 20:58

Sauf que l'exemple dans le manuel concerne monoBehaviour et OnGUI.
Moi, je suis dans Editor et OnSceneGUI, et apparemment ce n'est pas la même histoire
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

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

Re: Editor OnSceneGUI Button Pressed Button Released

Message par Max » 09 Mai 2020 21:04

Oui effectivement. Si je peux, je creuserais demain ;)
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

EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

Re: Editor OnSceneGUI Button Pressed Button Released

Message par EmileF » 09 Mai 2020 21:05

Merci Max
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

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

Re: Editor OnSceneGUI Button Pressed Button Released

Message par djulio74 » 09 Mai 2020 21:41

Il me semble qu'en éditor, il n'y a pas forcément de notion de temps. Il n'y a pas de frame rate, temps écoulé et autre et je pense que c'est ce qui te pose soucis.
Si tu dis qu'à l'appui et au relâchement tu retrouve une valeur True et false le reste du temps.
Pourquoi pas assigner assigner un changement d'état d'un bool lors de ces deux évent ( appui et relâchement), et une fonction appelé qui ne s'exécute tant que le bool est True ( donc entre appui et relâchement)

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

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

Re: Editor OnSceneGUI Button Pressed Button Released

Message par djulio74 » 09 Mai 2020 22:03

bon du coup je viens de tester avec une simple :

Code : Tout sélectionner

void OnSceneGUI()
{
	Handles.BeginGUI();
	if (GUI.RepeatButton(new Rect(10, 70, 50, 30), "Click"))
		Debug.Log("Le bouton est appuyé ");
	Handles.EndGUI();
}
pour tester dans un script editor et le message s'affiche bien dans la console de façon répétée.

de même avec l’exécution d'une fonction :

Code : Tout sélectionner

void OnSceneGUI()
{
	Handles.BeginGUI();
	if (GUI.RepeatButton(new Rect(10, 70, 50, 30), "Click"))
		BoutonPresse();
	Handles.EndGUI();
}
void BoutonPresse()
{
	Debug.Log("Le bouton est appuyé ");
}
qui s’exécute bien quand le bouton est maintenu appuyé.

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

Re: Editor OnSceneGUI Button Pressed Button Released

Message par EmileF » 09 Mai 2020 22:59

Bonsoir et merci de vos réponses.

en fait après vérification, j'utilise GUI.Window pour afficher ce bouton et semblerait donc que ce soit a cause de ça que les event ne fonctionne plus de la même façon
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

Re: Editor OnSceneGUI Button Pressed Button Released

Message par EmileF » 10 Mai 2020 08:50

Bonjour, j'insiste lourdement:

Voilà la partie de script qui nous intéresse:

Code : Tout sélectionner

    private void OnSceneGUI()
    {
        DeplaceObjet();
    }
    private void DeplaceObjet()
    {
        Handles.BeginGUI();
        if (GUI.RepeatButton(new Rect(50, 50, 50, 50), editeur.fleches[1]))
        {
            Debug.Log("Pressed");
        }
        Handles.EndGUI();
    }


A la première pression, j'ai 1 pressed, quand je relache, 1 autre,
si je rappuie, 2 de plus, et quand je relache 1 de plus,
et ensuite à chaque pression 2 pressed de plus et à chaque relachement 1 pressed en plus.

Alors, excusez-moi si je vous agresse ce jour du seigneur :malin1: mais je persiste de dire que RepeatButton ne fonctionne pas comme ils le prétendent.
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

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

Re: Editor OnSceneGUI Button Pressed Button Released

Message par djulio74 » 10 Mai 2020 10:52

Ne serait-ce pas parce que le GUI n'est pas directement dans la void on scene gui ?
As-tu essayé l'inverse comme dans mon deuxième exemple ? Le RepeatBouton dans sceneGui qui exécute la fonction avec le débug

Édit :
Regarde aussi du côté de handles. Repaint() qui sert me semble il à l'actualisation en mode édit, vu qu'il n'y a pas de notion de temps.

Et si t'es débug sont pas cohérent ça peut venir de ça, dans le sens où ils sont bien pris en compte correctement, mais l'actualisation est aléatoire donc n'apparaissent pas au bon moment dans la console

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Répondre

Revenir vers « Unity le logiciel »