События не реагируют на лишние кнопки мыши - PullRequest
2 голосов
/ 31 октября 2019

В настоящее время я разрабатываю пользовательский интерфейс для моей игры Unity. В связи с этим я начал создавать KeyBinder-Menu, в котором можно переназначать клавиши. Это работает нормально, пока я не попытался реализовать его для кнопок мыши.

Я пытался использовать Event.current.button, чтобы я мог обрабатывать ввод с помощью мыши, но сначала он возвращает 0 все время, когда я не нажимаю ничего, затемкнопка мыши 0 и во-вторых, она не реагирует на мои дополнительные кнопки мыши.

Затем я попробовал Input.GetKeyDown(KeyCode.MouseX) (X - это кнопка мыши, которую я хочу обработать). Это прекрасно работает с кнопками мыши 0, 1 и 2, но не работает с моими дополнительными кнопками. У меня есть мышь от Logitech с 2 дополнительными кнопками, и они отлично работают во всех играх (например, LOL, Rainbow, Minecraft ....), поэтому я не знаю, почему Unity не может справиться с ними.

Спасибо за все ответыЯ могу получить.

1 Ответ

3 голосов
/ 31 октября 2019

Это в настоящее время ошибка, я уже отправил отчет об ошибке, вы можете проголосовать за нее здесь: https://issuetracker.unity3d.com/issues/event-dot-button-only-supports-right-left-and-middle-mouse-buttons

Однако Input.GetMouseButton(x); все равно будет правильно читать ваши дополнительные кнопки мыши, где x является целым числомНапример: Input.GetMouseButton(12); прочитает вашу 12-ю кнопку мыши на игровой мыши ...

Вы также можете сделать события release, push:

Возвращает true во время кадра пользователянажал указанную кнопку мыши. Input.GetMouseButtonDown(int button);

Возвращает, удерживается или нет нажатой указанная кнопка мыши.
Input.GetMouseButton(int button);

Возвращает истину во время кадра, когда пользователь отпускает указанную кнопку мыши. Input.GetMouseButtonUp(int button);

...