T-Reload: опыт интеграции геймпадов
В последнее время работал над интеграцией геймпадов в T-Reload.
Unity давно выпустила InputSystem, которая значительно отличается от старой Input.
В нашем случае (синглплеерная игра) не возникло проблем при миграции системы ввода с Input -> InputSystem.
Unity выпустила хороший тестовый проект Warriors, который позволяет изучить принцип работы новой системы ввода в действии.
В проекте использовались следующие устройства ввода:
1) Keyboard
2) Mouse (For simulating touchscreen input in the Unity Editor)
3) PlayStation 4 Dualshock Controller
4) Xbox One Controller
5) Nintendo Switch Pro Controller
6) Android Samsung Galaxy S9 (Touchscreen for Virtual Joystick and Virtual Button)
Клавиатура и мышь "воспринимаются" как одно устройсвто, работают. С ними проблем у нас не возникло.
Unity тестировали проект на реальном Xbox One геймпаде. Я не особо разбираюсь в разновидностях, не уверен, но кажется они тестировали игру на этом:
Подключил свой геймпад 4-й ревизии и он почему-то успешно распознался как Xbox One:
Может кто знает как распознать разные версии геймпадов? Тестовый проект этого не умеет делать для геймпада xBox.
А вот разные геймпады Sony определяются по-разному. То есть можно точно знать что подключено: Dualshock или DualSense.
В WarriorsProject Unity использовали PlayStation 4 Dualshock.
Я же приобрел PlayStation 5 DualSense и WarriorsProject его не обнаружил в всписке поддерживаемых геймпадов. Пришлось добавлять.
То есть, получается, что xBox геймпады распознаются все как один, а геймпады Sony распознаются как разные.
Танцы с бубном на этом еще не закончились. Геймпад DualSense подключается по блютузу к разным компам через пень-колоду. До сих по не пойму точно как он коннектится и от чего это зависит. А вот геймпад от xBox подключается по блютузу без вопросов. Да и лампочка помогает видеть состояние xBox-геймпада (включен или нет, что очень удобно). В то же время на DualSense нет индикатора-лампы и непонятно включен он или нет.
С xBox проблем не возникло пока никаких. Ну кроме как impulseTriggers почему-то до сих пор нельзя запустить из коробки (у сони та же проблема).
Геймпад от сони подключается к компу без танцев с бубнами (быстро) если подключать через кабель. Но вот здесь нажатия кнопок почему-то не определяются именно для DualSense:
В сети встречал подобную проблему у NintendoSwitchPro.
Особо удивила вибрация DualSense. Она совсем не работала. Работали все стики, все кнопки, но не вибрация. Я уже начал думать, что геймпад с браком. Случайно подключил его с помощью кабеля и обнаружил, что вибрация все же есть.
То есть у DualSense вибрация работает только при проводном подключении :/Кто бы мог подумать? Нужно читать документацию.
Работа над интерфейсом геймпада в игре
Изучив разные версии отображения кнопок на геймпадах, принял неверное решение: решил провести линию к каждой используемой кнопке и подписать её (так кто-то сделал). В результате много возился с этим и понял, что не использовал опыт предыдущего дизайнера, а повторил его ошибки XD Распиновка геймпада путала игрока, выглядела крайне запутанно (примерно так):
Это дело нас не устроило и мы пришли к такому варианту отображения подписей используемых кнопок:
На этом пока все. Если кто знает, то подскажите где есть список со всевозможными bindingPaths???
Очень нужно знать баиндинги вот этих кнопок:
Инди игры
126 постов397 подписчиков
Правила сообщества
1. Реклама запрещена.
2. Сообщество авторское, публикуемый материал должен принадлежать Вам, потому каждое обвинение в плагиате должно быть подтверждено ссылкой. При первом нарушении - предупреждение, повторно - бан.
Идеально, если Вы являетесь членом инди-команды.
Пост без тэга "Мое" будет вынесен в общую ленту.
3. Постить только картинки или видео игры запрещено. Фото и видеоматериалы должны быть подкреплены текстом.
4. Особые публикации:
- интервью с разработчиками
- обучающие видеоматериалы
В этом случае правила п.3 могут быть смягчены или проигнорированы.
5. Разрешено публиковать информацию по анонсам игр, мероприятиям связанными с игровой индустрией и прочие плюшки.
6. Пост должен иметь внятную структуру.
7. Администрация имеет право решать, насколько пост соответствует сообществу.