Unity 3d 4プレイヤー一度に押すことができるボタンは4つだけです


8

一度に押すことができるボタンは4つだけなので、プレーヤーは時々移動できません

各プレーヤーには独自のコントロールがあります

i変更、上向き矢印、およびその他の各プレーヤー用のもの--- v 私は各プレイヤーのために上向き矢印と他のものを変更します

入力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);

すばらしい質問です。これについて多くを学びました
Evorlor 2015年

安いキーボードは3つのキーの組み合わせの多くを認識しません。
CodesInChaos 2015年

回答:


19

キーボードには、同時に押して認識できるキーの数に関するハードウェア制限があります。

あなたのコードはここでは問題ではありません、それはおそらくキーボードのデザインです。


4
これが、FPS PCゲームがShift、CTRL、およびAltキーを利用する理由です。これらのキーは、4つのキー制限にカウントされません。
Dustin_00 2015年

4
Ps。1台のコンピューターでまともなマルチプレイヤーエクスペリエンスを実現するための秘訣は、複数のキーボードをサポートすることです。それらは十分に安価であり、シンプルなUSBハブを1つまたは2つ使用するだけで、数十台を同時に簡単に接続できます。さらに、それはあなたのプレイヤーが単一のキーボードの周りに群がることから解放されます。
Ilmari Karonen、2015年

1
また、ブランド化されたゲーマーキーボード(最も安価なロジクールキーボードでも)は、少なくとも4つのキーを同時に押すことをサポートしています。機械式のものは一般にピアノのように機能するので、すべての指を使用できます。gaming.stackexchange.com/questions/6669/...
Furkan Omay

ただし、デフォルトのUSBプロトコルでは6つのキー(およびメタキー)しか使用できないため、それ以上のキーボードが必要な場合は、独自のドライバーを提供する必要があります。
ラチェットフリーク、2015年

11

キーボードにはキーマトリックスがあり、ボタンはほぼ正方形に配置されており、キースイッチはそれぞれ1つの行と1つの列に関連付けられています。キーボードは各行をアクティブにし、次に列を読み取ります。これをスケッチすると、いくつかのボタンの組み合わせが「ファントム」キーをアクティブにする必要があることがわかります。ボタンごとに1つのダイオードでこれを修正でき(キーボードにはかなりのコストがかかります)、完全にロールオーバーできます。ファントムを回避するために、完全なロールオーバーのないキーボードは、あいまいなキーの組み合わせを無視します。

修飾キーは常にコード化できるように設計されています。

キーボードがレポートするキーのセットを取得したら、修飾子のビットマスクである1バイトと他のスキャンコード用の6バイトを含むUSB HIDレポートにそれをパックする必要があります。したがって、完全なロールオーバーを使用しても、8つを超える修飾子と6つ以上のスキャンコードが同時に表示されることはほとんどありません。

(キーボードレポートにも常に0である1バイトがあり、合計8バイトになります)


1
一部のキーボード(特にrazerのキーボード)は、USBを介した場合でも完全なキーの完全なロールオーバーを可能にするために、HIDに準拠していない拡張機能を使用することに注意してください。さらに、ps2ポートにもこの制限がなく、nキーのロールオーバーを実行できました。
Vality

2
技術的には、必要なだけの大きさのキーボードHIDレポートを作成することについて、非準拠のものはありません。ただし、私が説明したように機能するUSB​​ブートHID標準があります。この限られたフォーマットは、BIOSの単純なコードがUSBキーボードを理解できるように指定されました。実際のOSが起動したときにそのモードから切り替わるキーボードを設計するのは、より多くの作業です。デバイスに適切な記述子がある場合、Windowsの汎用HIDドライバーは、好きなだけスキャンコードをサポートする可能性が高いです。
ベンジャクソン

よろしくお願いします。それは貴重な情報なので、おそらくあなたはそれを答えに入れることができます。
Vality

別名は、nキーロールオーバーです。やや接線:Windowsドライバーが読み込まれ、UEFIファームウェアで動作するキーボードがありますが、Windowsブートローダーといくつかの起動可能なメディアが作動し、実際にはフリーズします。伝統的に、PS / 2接続は、USBが〜6に制限されたnキーのロールオーバーに使用されていましたが、最近では珍しいようです。
Bob
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.