[RESOLU] EditorWindow : Update()
Publié : 22 Fév 2021 12:55
Bonjour,
Ça fait une heure que je galère là-dessus. J'ai une EditorWindow très basique :
Mon problème tient dans la dernière line.
Je voudrais capturer les inputs clavier quand ma fenêtre est visible, pour pouvoir fermer la fenêtre en appuyant sur Entrée au lieu d'avoir à cliquer sur un bouton.
La doc dit qu'EditorWindow a déjà une fonction Update : https://docs.unity3d.com/ScriptReferenc ... pdate.html
MAIS cette fonction ne semble pas être appelée lorsque je demande spécifiquement à afficher mon EditorWindow avec window.ShowModalUtility(). Ni même avec window.ShowModal().
Si j'utilise window.Show() ou window.ShowUtility(), la fonction Update est bien appelée.
C'est vraiment plus pertinent dans mon cas d'avoir ma fenêtre qui s'affiche comme une ModalWindow, parce que je veux empêcher l'utilisateur de faire quoi que ce soit d'autre tant qu'il n'a pas traité la fenêtre.
J'ai aussi essayé de m'inscrire à quelques delegates dans OnEnable/OnDisable (comme SceneView.duringSceneGUI ou EditorApplication.update), mais ça n'a pas marché (ça n'affiche aucun Debug.Log, et ne catch aucun input via Event.current comme c'est pourtant conseillé dans plein de forums).
Merci pour vos réponses !
Ça fait une heure que je galère là-dessus. J'ai une EditorWindow très basique :
Code : Tout sélectionner
public class ChangeCellSizeWindow : EditorWindow
{
public static void ShowWindow()
{
var window = GetWindow<ChangeCellSizeWindow>();
// Showing it as a modal forces the user to process it immediately
window.ShowModalUtility();
}
}
Je voudrais capturer les inputs clavier quand ma fenêtre est visible, pour pouvoir fermer la fenêtre en appuyant sur Entrée au lieu d'avoir à cliquer sur un bouton.
La doc dit qu'EditorWindow a déjà une fonction Update : https://docs.unity3d.com/ScriptReferenc ... pdate.html
MAIS cette fonction ne semble pas être appelée lorsque je demande spécifiquement à afficher mon EditorWindow avec window.ShowModalUtility(). Ni même avec window.ShowModal().
Si j'utilise window.Show() ou window.ShowUtility(), la fonction Update est bien appelée.
C'est vraiment plus pertinent dans mon cas d'avoir ma fenêtre qui s'affiche comme une ModalWindow, parce que je veux empêcher l'utilisateur de faire quoi que ce soit d'autre tant qu'il n'a pas traité la fenêtre.
J'ai aussi essayé de m'inscrire à quelques delegates dans OnEnable/OnDisable (comme SceneView.duringSceneGUI ou EditorApplication.update), mais ça n'a pas marché (ça n'affiche aucun Debug.Log, et ne catch aucun input via Event.current comme c'est pourtant conseillé dans plein de forums).
Merci pour vos réponses !