Я использую Unity Standard Assets — Cross Platform Input Control для создания Dpad в соответствии с требованиями моей игры.
Я следил за этим видеоуроком для реализации: Как переместить персонажа или игровой объект в игре Android Top Down Unity с помощью кнопок пользовательского интерфейса? Простой учебник
Я импортировал в проект только кросс-платформенные входные данные, как показано ниже, потому что я не буду использовать другие вещи.
Чтобы переместить моего персонажа 2D-игрока, я использовал этот код:
horizontalMove = CrossPlatformInputManager.GetAxisRaw("Horizontal");
verticalMove = CrossPlatformInputManager.GetAxisRaw("Vertical");
Плюс 4 компонента кнопок. Я настроил их так:
После использования кода, показанного выше, я смог переместить проигрыватель в моем редакторе Unity, но не смог переместить свой проигрыватель при тестировании на своем мобильном устройстве. Похоже, что по какой-то причине я не получаю никаких значений для моего горизонтального и вертикального ввода.
Если есть кто-нибудь, кто мог бы дать мне какое-то руководство или указать мне в решении моей проблемы с мобильным вводом. Я был бы благодарен.
Используйте триггер события и на каждой кнопке при нажатии используйте GetButton для вызова метода, который изменит логическое значение для 1 направления. В зависимости от этого логического значения игрок будет двигаться, затем используйте GetButtonUp, чтобы изменить состояние этого логического значения, которое остановит перемещение игрока в одном направлении. Это просто, нет необходимости использовать стандартные активы Unity.
Отлично, теперь вам просто нужно повторить тот же процесс для каждого направления, и все. ;)
Да, я сделал то же самое, удалил пакет Standard Assets и с помощью Trigger Event реализовал собственный контроллер Dpad.