Unity 3d 4 Spieler Es können jeweils nur 4 Tasten gedrückt werden

8

Es können immer nur 4 Tasten gleichzeitig gedrückt werden, sodass sich die Spieler manchmal nicht bewegen können

Jeder Spieler hat seine eigenen Kontrollen

i Ändern, Pfeil nach oben und die anderen für jeden Spieler --- v i Ändere den Pfeil nach oben und die anderen für jeden Spieler

EingängeV-VV

Eingänge

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);
user59720
quelle
Gute Frage!
Ich
Günstige Tastaturen erkennen nicht einmal viele 3 Tastenkombinationen.
CodesInChaos

Antworten:

19

Tastaturen haben Hardware-Einschränkungen hinsichtlich der Anzahl der Tasten, die gleichzeitig gedrückt und erkannt werden können.

Ihr Code ist hier nicht das Problem, sondern höchstwahrscheinlich das Design der Tastatur.

Almo
quelle
4
Aus diesem Grund nutzen FPS-PC-Spiele die Umschalt-, STRG- und Alt-Tasten - sie zählen nicht für diese 4-Tasten-Grenze.
Dustin_00
4
Ps. Der Trick, um ein anständiges Multiplayer-Erlebnis auf einem einzelnen Computer zu ermöglichen, besteht darin, mehrere Tastaturen zu unterstützen. Sie sind billig genug, und mit einem oder zwei einfachen USB-Hubs können Sie problemlos Dutzende von ihnen gleichzeitig anschließen. Außerdem müssen Ihre Spieler sich nicht mehr um eine einzige Tastatur kümmern.
Ilmari Karonen
1
Außerdem unterstützt jede Gamer-Tastatur (auch die billigste Logitech-Tastatur) das gleichzeitige Drücken von mindestens 4 Tasten. Mechanische funktionieren im Allgemeinen wie ein Klavier, sodass Sie alle Finger benutzen können. spiel.stackexchange.com/questions/6669/…
Furkan Omay
Das Standard-USB-Protokoll erlaubt jedoch nur 6 Tasten (plus die Metatasten). Wenn Sie also eine Tastatur mit mehr als dieser benötigen, muss sie einen eigenen Treiber bereitstellen.
Ratschenfreak
11

Tastaturen haben eine Tastenmatrix, in der die Tasten grob quadratisch angeordnet sind, wobei die Tastenschalter jeweils an eine Zeile und eine Spalte gebunden sind. Die Tastatur aktiviert jede Zeile und liest dann die Spalten. Wenn Sie dies skizzieren, werden Sie sehen, dass einige Tastenkombinationen "Phantom" -Tasten aktivieren müssen. Sie können dies mit einer Diode pro Taste beheben (was für eine Tastatur erhebliche Kosten verursacht) und einen vollständigen Rollover durchführen . Um die Phantome zu vermeiden, ignoriert eine Tastatur ohne vollständigen Rollover mehrdeutige Tastenkombinationen.

Modifikatortasten sind immer so gestaltet, dass sie akkordiert werden können.

Sobald die Tastatur über einen Satz von zu meldenden Tasten verfügt, muss dieser in den USB-HID-Bericht gepackt werden, der ein Byte enthält, das eine Bitmaske aus Modifikatoren ist, und 6 Byte für andere Scancodes. Selbst bei einem vollständigen Rollover werden wahrscheinlich nicht mehr als 8 Modifikatoren und 6 Scancodes gleichzeitig angezeigt.

(Der Tastaturbericht enthält auch ein Byte, das immer 0 ist, was insgesamt 8 Bytes ergibt.)

Ben Jackson
quelle
1
Es ist wahrscheinlich erwähnenswert, dass einige Tastaturen (insbesondere Rasierer-Tastaturen) eine nicht HID-kompatible Erweiterung verwenden, um einen echten vollständigen Tasten-Rollover auch über USB zu ermöglichen. Darüber hinaus hatten ps2-Ports diese Einschränkung ebenfalls nicht und konnten einen n-Schlüssel-Rollover durchführen.
Vality
2
Technisch gesehen ist es nicht konform , einen so großen Tastatur-HID-Bericht zu haben, wie Sie möchten. Es gibt jedoch einen USB-Boot-HID-Standard, der wie beschrieben funktioniert. Dieses eingeschränkte Format wurde angegeben, damit einfacher Code im BIOS USB-Tastaturen verstehen kann. Es ist nur mehr Arbeit, eine Tastatur zu entwerfen, die diesen Modus beim Start des realen Betriebssystems verlässt. Es ist sehr wahrscheinlich, dass generische Windows-HID-Treiber so viele Scancodes unterstützen, wie Sie möchten, wenn Ihr Gerät über die richtigen Deskriptoren verfügt.
Ben Jackson
Ausgezeichnet, danke, dass Sie mich informiert haben. Vielleicht könnten Sie das in die Antwort aufnehmen, da es sich um wertvolle Informationen handelt.
Vality
Ein anderer Name ist n-key rollover . Etwas tangential: Ich habe eine solche Tastatur, die mit geladenen Windows-Treibern und in der UEFI-Firmware funktioniert, aber den Windows-Bootloader und einige bootfähige Medien auslöst - sie friert sie tatsächlich ein. Traditionell wurden PS / 2-Verbindungen für n-Key-Rollover mit auf ~ 6 begrenztem USB verwendet, obwohl dies in letzter Zeit seltener zu sein scheint.
Bob