Unity 2D, получить направление джойстика - PullRequest
0 голосов
/ 10 февраля 2020

я делаю мобильную игру, у игрока есть захватный крюк, и он может летать с ним (точно так же, как человек-паук), я использую некоторый сценарий, чтобы захватный крюк работал на основе положения мыши, но проблема в том, что я хочу преобразовать это для мобильной игры, я могу просто использовать оставить как есть, так как щелчок по прикосновению такой же, как щелчок мыши, но я хочу использовать джойстик, чтобы получить направление. я хочу сделать так же, как и механизм fanny в мобильной легенде (если вы знаете игру)

Я использую этот скрипт для нацеливания на p c (что хорошо)

 if (Input.GetKeyDown(KeyCode.Mouse0))
        {
            Vector2 worldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            rope.setTarget(worldPos); // hook script will get this value
        }

Я пытаюсь использовать это для мобильных устройств (проблема):

if (Input.GetKeyDown(KeyCode.Mouse0))
        {
            float inputX = joystick.Horizontal;
            float inputY = joystick.Vertical;
            Vector2 dir = new Vector2(inputX, inputY);
            rope.setTarget(dir); // hook script will get this value
        }

1 Ответ

0 голосов
/ 10 февраля 2020

Если вы хотите захватить джойстик, это может быть достигнуто с помощью диспетчера ввода GetAxis, который может считывать стрелки джойстика, мыши или клавиатуры / asdw в зависимости от того, как вы его настроили.

В коде вы должны использовать:

float inputX = Input.GetAxis("Horizontal");
float inputY = Input.GetAxis("Vertical");

Если вы не хотите, чтобы мышь смотрела, просто настройте ее в Edit > Project Settings > Input > Axes. Есть две «Горизонтальные» и две «Вертикальные» конфигурации. Пусть существует только то, что с конфигурацией джойстика, и удалите другое. Ниже это изображение оси, настроенной для джойстиков:

enter image description here

Для получения дополнительной информации, проверьте https://docs.unity3d.com/Manual/class-InputManager.html. Я надеюсь, что это поможет вам начать!

РЕДАКТИРОВАТЬ: виртуальные / экранные джойстики на мобильном телефоне

В случае, если вы говорите о виртуальных / экранных джойстиках, вы должны контролировать это вручную, трудным путем. Для разработки джойстика такого типа вы будете использовать Диспетчер ввода, чтобы получить положение мыши / касания во время нажатия (Input.GetMouseButtonDown(int)), отпускания (Input.GetMouseButtonUp(int)) и перетаскивания (Input.GetMouseButton(int)). Затем вы контролируете, насколько мышь двигается с тех пор, как пользователь начал нажимать на нее, и фиксируете положение, чтобы не переполнять область джойстика.

Как вы указали в комментариях, вы загрузили ресурс из Asset Store. То, как работают ресурсы, уникально, и их разработчики должны сказать, как вы должны их использовать. Ищите документацию, учебные пособия и примеры, предоставленные разработчиком, чтобы увидеть, как актив предназначен для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...