Unity 3d 4 players Hanya 4 tombol yang dapat ditekan pada satu waktu

8

Hanya 4 tombol yang dapat ditekan pada satu waktu, sehingga pemain terkadang tidak dapat bergerak

Setiap Pemain Memiliki Kontrol mereka sendiri

i Ubah, Panah Atas dan yang lainnya untuk setiap pemain --- v i Ganti Panah dan yang lainnya untuk setiap pemain

Inputs-VV

Input

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);
pengguna59720
sumber
Pertanyaan bagus! Belajar banyak tentang hal ini
Evorlor
Keyboard murah bahkan tidak akan mengenali 3 kombinasi tombol.
CodesInChaos

Jawaban:

19

Keyboard memiliki batasan perangkat keras pada berapa banyak tombol yang dapat ditekan dan dikenali pada saat yang bersamaan.

Kode Anda bukan masalah di sini, kemungkinan besar desain keyboard.

Almo
sumber
4
Inilah sebabnya mengapa game FPS PC memanfaatkan tombol Shift, CTRL, dan Alt - mereka tidak memperhitungkan batas 4 kunci itu.
Dustin_00
4
Ps. Trik untuk mengaktifkan pengalaman multipemain yang layak pada satu komputer adalah dengan mendukung beberapa keyboard. Mereka cukup murah, dan dengan satu atau dua hub USB yang sederhana, Anda dapat dengan mudah memiliki lusinan dari mereka yang terhubung secara bersamaan. Plus, itu membebaskan pemain Anda dari harus semua berdesakan di sekitar satu keyboard.
Ilmari Karonen
1
Juga, keyboard gamer bermerek apa (bahkan yang termurah logitech) mendukung menekan setidaknya 4 tombol secara bersamaan. Yang mekanis umumnya bekerja seperti piano sehingga Anda dapat menggunakan semua jari Anda. gaming.stackexchange.com/questions/6669/…
Furkan Omay
Namun protokol USB default hanya memungkinkan untuk 6 tombol (ditambah tombol meta), jadi jika Anda ingin keyboard dengan lebih dari itu perlu menyediakan driver sendiri.
ratchet freak
11

Keyboard memiliki matriks kunci, di mana tombol telah diatur menjadi sesuatu yang kira-kira persegi, dengan masing-masing tombol diikat ke satu baris dan satu kolom. Keyboard mengaktifkan setiap baris dan kemudian membaca kolom. Jika Anda membuat sketsa ini, Anda akan melihat bahwa beberapa kombinasi tombol harus mengaktifkan tombol "phantom". Anda dapat memperbaikinya dengan satu dioda per tombol (yang merupakan biaya besar untuk keyboard) dan memiliki rollover penuh . Untuk menghindari hantu, keyboard tanpa rollover penuh akan mengabaikan kombinasi tombol yang ambigu.

Kunci pengubah selalu dirancang sedemikian rupa sehingga dapat dikunci.

Setelah keyboard memiliki seperangkat tombol untuk dilaporkan, keyboard harus dimasukkan ke dalam laporan USB HID, yang memiliki satu byte yang merupakan bitmask pengubah, dan 6 byte untuk scancode lainnya. Jadi bahkan dengan rollover penuh Anda tidak akan melihat lebih dari 8 pengubah dan 6 scancode secara bersamaan.

(laporan keyboard juga memiliki satu byte yang selalu 0, menghasilkan 8 total byte)

Ben Jackson
sumber
1
Mungkin perlu dicatat bahwa beberapa keyboard (terutama yang razer) menggunakan ekstensi yang tidak sesuai HID untuk mengaktifkan rollover kunci penuh yang sebenarnya bahkan melalui usb. Selain itu, port ps2 juga tidak memiliki batasan ini dan dapat melakukan rollover n key.
Vality
2
Secara teknis tidak ada yang tidak sesuai tentang memiliki laporan HID keyboard sebesar yang Anda inginkan. Namun, ada standar boot USB HID yang berfungsi seperti yang saya jelaskan. Format terbatas ini ditentukan sehingga kode sederhana di BIOS dapat memahami keyboard USB. Hanya saja lebih banyak pekerjaan untuk merancang keyboard yang beralih dari mode itu ketika OS yang sebenarnya diluncurkan. Sangat mungkin bahwa driver HID Windows generik akan mendukung scancode sebanyak yang Anda suka jika perangkat Anda memiliki deskriptor yang tepat.
Ben Jackson
Luar biasa, terima kasih telah memberi tahu saya. Mungkin Anda bisa menjawabnya karena itu informasi yang berharga.
Vality
Nama lain adalah rollover n-key . Agak tangensial: Saya memang punya keyboard yang berfungsi dengan driver Windows dimuat dan di UEFI firmware, tetapi naik bootloader Windows dan beberapa media bootable - itu benar-benar membeku mereka. Secara tradisional, koneksi PS / 2 digunakan untuk rollover n-key dengan USB terbatas hingga ~ 6, meskipun itu tampaknya lebih jarang baru-baru ini.
Bob