Игроки Unity 3d 4 Одновременно можно нажимать только 4 кнопки


8

Одновременно можно нажимать только 4 кнопки, поэтому игроки не могут иногда двигаться

Каждый игрок имеет свои собственные элементы управления

я меняю стрелку вверх и другие для каждого игрока --- v я меняю стрелку вверх и другие для каждого игрока

InputsV-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);

Отличный вопрос! Многое узнал об этом
Evorlor

Дешевые клавиатуры не распознают даже 3 комбинации клавиш.
CodesInChaos

Ответы:


19

Клавиатуры имеют аппаратные ограничения на количество клавиш, которые можно нажимать и распознавать одновременно.

Ваш код здесь не проблема, скорее всего, дизайн клавиатуры.


4
Вот почему в играх FPS для ПК используются клавиши Shift, CTRL и Alt - они не учитываются при достижении этого ограничения в 4 клавиши.
Dustin_00

4
Ps. Хитрость для обеспечения приличного многопользовательского режима на одном компьютере - поддержка нескольких клавиатур. Они достаточно дешевые, и с одним или двумя USB-концентраторами вы можете легко подключить десятки одновременно. Кроме того, это освобождает ваших игроков от необходимости приставать к одной клавиатуре.
Илмари Каронен

1
Кроме того, любая фирменная клавиатура геймера (даже самая дешевая Logitech) поддерживает одновременное нажатие как минимум 4 клавиш. Механические обычно работают как пианино, поэтому вы можете использовать все свои пальцы. gaming.stackexchange.com/questions/6669/…
Фуркан Омай

Однако протокол USB по умолчанию позволяет использовать только 6 клавиш (плюс мета-клавиши), поэтому, если вы хотите, чтобы клавиатура имела больше, чем это, она должна предоставить свой собственный драйвер.
фрик с трещоткой

11

Клавиатуры имеют матрицу клавиш, в которой кнопки расположены примерно в квадратную форму, причем каждая из клавиш привязана к одному ряду и одному столбцу. Клавиатура активирует каждую строку, а затем читает столбцы. Если вы набросаете это, то увидите, что некоторые комбинации кнопок должны активировать «фантомные» клавиши. Вы можете исправить это с помощью одного диода на кнопку (что является существенной стоимостью для клавиатуры) и иметь полную опрокидывание . Чтобы избежать фантомов, клавиатура без полного ролловера будет игнорировать неоднозначные комбинации клавиш.

Клавиши-модификаторы всегда спроектированы таким образом, чтобы их можно было закрепить.

Когда на клавиатуре есть набор клавиш для отчета, она должна упаковать его в отчет HID USB, который содержит один байт, который является битовой маской модификаторов, и 6 байтов для других кодов сканирования. Таким образом, даже при полном пролонгации вы вряд ли увидите более 8 модификаторов и 6 скан-кодов одновременно.

(отчет о клавиатуре также имеет один байт, который всегда равен 0, что составляет 8 байтов)


1
Вероятно, стоит отметить, что некоторые клавиатуры (в частности, Razer) используют не HID-совместимое расширение, чтобы обеспечить полноценное переключение клавиш даже по USB. Кроме того, порты PS2 также не имеют этого ограничения и могут выполнять n переключения клавиш.
Vality

2
Технически нет ничего несовместимого в том, чтобы иметь такой большой отчет HID клавиатуры, как вы хотите. Тем не менее, существует стандарт загрузки USB HID, который работает, как я описал. Этот ограниченный формат был задан так, чтобы простой код в BIOS мог понимать USB-клавиатуры. Это просто больше работы, чтобы разработать клавиатуру, которая выходит из этого режима при запуске реальной ОС. Весьма вероятно, что универсальные драйверы HID для Windows будут поддерживать столько кодов сканирования, сколько вам нужно, если на вашем устройстве есть правильные дескрипторы.
Бен Джексон

Отлично, спасибо, что дали мне знать. Возможно, вы могли бы указать это в ответе, поскольку это ценная информация.
Vality

Другое название - N-Key Rollover . Несколько касательно: у меня есть такая клавиатура, которая работает с драйверами Windows, загруженными и в прошивке UEFI, но отключает загрузчик Windows и некоторые загрузочные носители - они фактически замораживают их. Традиционно соединения PS / 2 использовались для переключения n-клавиш с ограничением USB до ~ 6, хотя в последнее время это кажется более редким.
Боб
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.