Unity 3d 4 jugadores Solo se pueden presionar 4 botones a la vez

8

Solo se pueden presionar 4 botones a la vez, por lo que los jugadores no pueden moverse a veces

Cada jugador tiene sus propios controles

Cambio, flecha arriba y los otros para cada jugador --- v Cambio la flecha hacia arriba y las otras para cada jugador

Entradas V-VV

Entradas

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);
usuario59720
fuente
Gran pregunta! Aprendí mucho sobre este
Evorlor
Los teclados baratos ni siquiera reconocerán muchas combinaciones de 3 teclas.
CodesInChaos

Respuestas:

19

Los teclados tienen limitaciones de hardware sobre cuántas teclas se pueden presionar y reconocer al mismo tiempo.

Su código no es el problema aquí, es muy probable que sea el diseño del teclado.

Almo
fuente
44
Esta es la razón por la cual los juegos de PC FPS aprovechan las teclas Shift, CTRL y Alt: no cuentan para ese límite de 4 teclas.
Dustin_00
44
PD. El truco para permitir una experiencia multijugador decente en una sola computadora es admitir varios teclados. Son lo suficientemente baratos, y con un simple concentrador USB o dos puede conectar fácilmente docenas de ellos al mismo tiempo. Además, libera a tus jugadores de tener que acurrucarse en un solo teclado.
Ilmari Karonen
1
Además, cualquier teclado de jugador de marca (incluso el logitech más barato) admite presionar al menos 4 teclas simultáneamente. Los mecánicos generalmente funcionan como un piano, por lo que puede usar todos sus dedos. gaming.stackexchange.com/questions/6669/…
Furkan Omay
Sin embargo, el protocolo USB predeterminado solo permite 6 teclas (más las meta teclas), por lo que si desea un teclado con más de eso, necesita suministrar su propio controlador.
monstruo de trinquete
11

Los teclados tienen una matriz de teclas, donde los botones se han dispuesto en algo aproximadamente cuadrado, con los interruptores de teclas cada uno atado a una fila y una columna. El teclado activa cada fila y luego lee las columnas. Si bosquejas esto, verás que algunas combinaciones de botones deben activar teclas "fantasmas". Puede arreglar esto con un diodo por botón (que es un costo sustancial para un teclado) y tener un rollover completo . Para evitar los fantasmas, un teclado sin desplazamiento completo ignorará las combinaciones de teclas que son ambiguas.

Las teclas modificadoras siempre están diseñadas para que se puedan acordar.

Una vez que el teclado tiene un conjunto de teclas para informar, tiene que empaquetarlo en el informe USB HID, que tiene un byte que es una máscara de bits de modificadores y 6 bytes para otros códigos de escaneo. Por lo tanto, incluso con el rollover completo, es probable que no vea más de 8 modificadores y 6 códigos de escaneo simultáneamente.

(el informe del teclado también tiene un byte que siempre es 0, con un total de 8 bytes)

Ben Jackson
fuente
1
Es probable que valga la pena señalar que algunos teclados (especialmente los razer) usan una extensión no compatible con HID para permitir una verdadera transferencia completa de teclas incluso sobre usb. Además, los puertos ps2 tampoco tenían esta restricción y podían realizar n rollover de clave.
Vality
2
Técnicamente, no hay nada que no cumpla con tener un informe HID de teclado tan grande como desee. Sin embargo, hay un estándar HID de arranque USB que funciona como lo describí. Este formato limitado se especificó para que el código simple en BIOS pudiera entender los teclados USB. Es solo más trabajo diseñar un teclado que salga de ese modo cuando se inicie el sistema operativo real. Es muy probable que los controladores HID genéricos de Windows admitan tantos códigos de escaneo como desee si su dispositivo tiene los descriptores correctos.
Ben Jackson
Excelente, gracias por hacérmelo saber. Tal vez podría poner eso en la respuesta, ya que es información valiosa.
Vality
Otro nombre es n-key rollover . Algo tangencial: tengo un teclado que funciona con los controladores de Windows cargados y en el firmware UEFI, pero activa el cargador de arranque de Windows y algunos dispositivos de arranque, en realidad los congela. Tradicionalmente, las conexiones PS / 2 se usaban para la transferencia de n-key con USB limitado a ~ 6, aunque eso parece ser más raro recientemente.
Bob