Page 1 sur 1
keycode introduisant une combinaison de touches
Publié : 01 Oct 2020 12:20
par Kaloverian
bonjour,
Peut=on en C#, après un :
insérer une combinaison de touches?
Si oui,comment?
merci de votre aide
Re: keycode introduisant une combinaison de touches
Publié : 01 Oct 2020 13:49
par Max
Bonjour,
si tu entends par là détecter l’appui de plusieurs touches en même temps, c'est à toi de le gérer.
Genre:
Re: keycode introduisant une combinaison de touches
Publié : 01 Oct 2020 13:57
par jmhoubre
Bonjour,
en relisant la
documentation de KeyCode, je n'ai pas trouvé de réponse à cette question. Il me semble que ce n'est pas possible directement.
Cette petite fonction pourrait cependant répondre à ton besoin (exemple pour Ctrl + Maj) :
Code : Tout sélectionner
private bool CtrlShift () {
return (
(Input.GetKey (KeyCode.LeftShift) || Input.GetKey (KeyCode.RightShift)) &&
(Input.GetKey (KeyCode.LeftControl) || Input.GetKey (KeyCode.RightControl)));
}
Attention, cette fonction renvoie true tant que les deux touches sont pressées, donc à l'échelle du joueur, plusieurs fois par seconde. GetKeyDown ne donne pas le résultat escompté.
Re: keycode introduisant une combinaison de touches
Publié : 01 Oct 2020 15:00
par boubouk50
Pour combiner un Shift + C par exemple, tu peux utiliser le GetKey pour le Shift et le GetKeyDown pour le C.
Code : Tout sélectionner
if (Input.GetKey(KeyCode.LeftShift))
{
if (Input.getKeyDown (KeyCode.C))
{
//Action unique lors de l'appui de C PENDANT un shift
}
}
Il faut prendre en compte que si tu appuies sur C avant Shift, cela ne fonctionnera pas par contre.
Si tu veux le moment pile ou les deux sont appuyés, alors il faut utiliser 2 GetKey et bloquer une seconde entrée avec un booléen.
Code : Tout sélectionner
if (Input.GetKey(KeyCode.LeftShift) && Input.getKey (KeyCode.C))
{
if (firstEntry)
{
firstEntry = false;
//Action unique lors de l'appui de C PENDANT un shift
}
}
if (Input.GetKeyUp(KeyCode.LeftShift) || Input.getKeyUp (KeyCode.C))
{
firstEntry = true;
//Lorsque une des deux touches est relâchée
}