[RESOLU]Editor OnSceneGUI Button Pressed Button Released
[RESOLU]Editor OnSceneGUI Button Pressed Button Released
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
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.
Re: Editor OnSceneGUI Button Pressed Button Released
Bonjour,
De mon coté, en essayant l'exemple de la doc, le fonctionnement constaté est bien celui décrit dans la doc.EmileF a écrit : ↑09 Mai 2020 20:30J'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.
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
Re: Editor OnSceneGUI Button Pressed Button Released
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
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.
Re: Editor OnSceneGUI Button Pressed Button Released
Oui effectivement. Si je peux, je creuserais demain
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
Re: Editor OnSceneGUI Button Pressed Button Released
Merci Max
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.
Re: Editor OnSceneGUI Button Pressed Button Released
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)
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 _______________________/
Re: Editor OnSceneGUI Button Pressed Button Released
bon du coup je viens de tester avec une simple :
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 :
qui s’exécute bien quand le bouton est maintenu appuyé.
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();
}
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é ");
}
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: Editor OnSceneGUI Button Pressed Button Released
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
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.
Re: Editor OnSceneGUI Button Pressed Button Released
Bonjour, j'insiste lourdement:
Voilà la partie de script qui nous intéresse:
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 mais je persiste de dire que RepeatButton ne fonctionne pas comme ils le prétendent.
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();
}
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 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.
Re: Editor OnSceneGUI Button Pressed Button Released
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
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 _______________________/