Не понимаю, зачем вам Ардуино.
Я сделал картонную игру (типа авиасимулятора). Купил геймпад Ipega 9028 на aliexpress. связал его с моим андроидом/айфоном и все. (если в вашем телефоне нет bluetooth... в этом случае вам следует инвестировать в новый телефон, а не в новый Arduino :))
в вашем приложении единства вам сначала нужно связать ключи и сохранить их в PlayerPrefs, потому что у вас нет возможности узнать, какая кнопка / ось преобразуется в какой номер кнопки единства / номер оси.
так в менеджере ввода в юнити нужно определить все возможные кнопки и оси для джойстика №1. а потом юнити создать меню привязки клавиш. там вы должны сделать так, чтобы пользователь нажимал кнопку «Привязать» для каждой опции (например, двигаться, стрелять, подниматься, опускаться и т. д.), и как только он нажимает ее, вам нужно иметь 2 «цикла for». один ищет ввод для всех номеров кнопок (Input.GetButton), а другой ищет ввод для всех осей джойстика (Input.GetAxis). в соответствии с именами, которые вы создали для них в диспетчере ввода.
как только вы обнаружите ввод, вы должны сохранить его имя в playerPrefs вместе с действием, к которому оно должно быть привязано.
вы должны сделать так, чтобы ваши пользователи сделали это один раз после установки игры. потому что каждый геймпад передает в единство разные коды. так, например, для левого аналогового джойстика вы не можете заранее знать, какой оси он будет соответствовать в единстве.
затем в вашей игре просто прочитайте все эти значения из playerPrefs в Start(), и вы будете знать, какой ввод слушать для каждого действия.
я надеюсь, что это ясно.
p.s. также получите USB-джойстик, чтобы вам было легко тестировать на своей машине для разработки.
person
Alon Schachter
schedule
19.07.2015