Можно ли установить несколько входов контроллера во время выполнения? - PullRequest
0 голосов
/ 17 января 2019

Предварительные заметки

  • Я создаю многопользовательскую игру для 4 игроков.
  • У меня есть 4 идентичных контроллера, которые похожи на контроллеры USB SNES.
  • Все контроллеры работают и ввод отлично.
  • Я хочу, чтобы эта игра работала на нескольких платформах, устройствах и т. Д.

Вот вопрос:

Когда я запускаю игру, контроллеры автоматически отображаются следующим образом ...

  • Игрок 1: контроллер 1
  • Игрок 2: контроллер 2
  • Игрок 3: контроллер 3
  • Игрок 4: контроллер 6

Я предполагаю, что если я изменю порядок подключения контроллеров, или запусту это на другом компьютере / устройстве, или использую другие контроллеры и т. Д., Сопоставление входных данных, конечно же, не будет тем, к которому автоматически сопоставляется выше.

Мой вопрос:

У меня есть скрипт, который определяет, какой контроллер вводит. (например, JoyNum, как я понял, игрок 4 был контроллером 6)

Учитывая это, можно ли по умолчанию установить JoyNums "Менеджера ввода" в Unity для компенсации?

Я думал о том, чтобы создать экран, на котором все будут толкаться, чтобы присоединиться к игре. На этом этапе я смогу обнаружить все контроллеры. (Например, какой JoyNum у каждого игрока) Последним шагом будет переопределение менеджера ввода Unity. Возможно ли это?

Спасибо!

PS: я искал и нашел «Диспетчер нестандартного ввода» в Git, https://github.com/daemon3000/InputManager

Однако проект не создается, и я понятия не имею, как его реализовать.

1 Ответ

0 голосов
/ 20 января 2019

Итак, после долгих проб и ошибок я нашел решение, которое работает. (Вероятно, не самый чистый / рекомендуемый подход, хотя)

Шаг 1) Добавьте каждую ось джойстика (все 28) для каждого контроллера (все 8) в вашем диспетчере ввода. (Сценарий может сделать это очень просто / намного меньше времени)

Шаг 2) Создайте свой собственный Input Mapper. (Определите «вверх» и «влево» каждого контроллера.)

Шаг 3) Сохраните эти результаты в файле "PlayerPrefs".

Шаг 4) Создайте свой собственный сценарий обнаружения ввода. (Единственное, что необходимо для доступа к диспетчеру ввода Unity, - это ось джойстика.) Другие кнопки можно выполнить вручную из (строк), загруженных из файла PlayerPrefs.

Плюсы этого подхода:

  • Работает как ловить всех. (Для любого контроллера, устройства, компьютера и т. Д.)
  • Очень стабильный!
  • Позволяет максимально контролировать все входы и то, что они делают.

Минусы:

  • Кажется немного смешным делать все это.
  • Достаточно много времени. (Но может легко использоваться снова в будущих проектах)
  • Кажется небрежным, но прекрасно работает.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...