Seuls 4 boutons peuvent être enfoncés à la fois, donc les joueurs ne peuvent pas bouger parfois
Chaque joueur a ses propres contrôles
i Change, Flèche vers le haut et les autres pour chaque joueur --- v
Entrées V-VV
public string UpArrow;
public string DownArrow;
public string LeftArrow;
public string RightArrow;
if(Input.GetButton(UpArrow))
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
if(Input.GetButton(DownArrow))
transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);
if(Input.GetButton(LeftArrow))
transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
if(Input.GetButton(RightArrow))
transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
Réponses:
Les claviers ont des limitations matérielles sur le nombre de touches pouvant être enfoncées et reconnues en même temps.
Votre code n'est pas le problème ici, c'est probablement la conception du clavier.
la source
Les claviers ont une matrice de touches, où les boutons ont été disposés en quelque chose de plus ou moins carré, les interrupteurs à clé étant chacun liés à une ligne et une colonne. Le clavier active chaque ligne puis lit les colonnes. Si vous esquissez ceci, vous verrez que certaines combinaisons de boutons doivent activer les touches "fantômes". Vous pouvez résoudre ce problème avec une diode par bouton (ce qui représente un coût substantiel pour un clavier) et avoir un survol complet . Pour éviter les fantômes, un clavier sans survol complet ignorera les combinaisons de touches ambiguës.
Les touches de modification sont toujours conçues pour pouvoir être accordées.
Une fois que le clavier a un ensemble de touches à signaler, il doit l'intégrer dans le rapport USB HID, qui a un octet qui est un masque de bits de modificateurs et 6 octets pour les autres scancodes. Ainsi, même avec un survol complet, vous ne verrez probablement pas plus de 8 modificateurs et 6 scancodes simultanément.
(le rapport du clavier a également un octet qui est toujours 0, ce qui fait 8 octets au total)
la source