Unity: определение кнопок пользовательского интерфейса в диспетчере ввода - PullRequest
0 голосов
/ 02 августа 2020

Внутри холста у меня есть кнопки пользовательского интерфейса, которые должны отвечать за «влево», «вправо» и «прыжок». Можно ли определить их как ответственные кнопки в диспетчере ввода вместо кнопок клавиатуры?

введите описание изображения здесь

Если нет, как я могу имитировать левый и правый горизонтальные события ввода в кнопках пользовательского интерфейса?

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Мне удалось получить то, что мне нужно, с помощью CrossPlatformInput из стандартных ресурсов, как показано в этом видео: https://www.youtube.com/watch?v=RqomLumqwCk

0 голосов
/ 02 августа 2020

Никогда не слышал об имитации нажатия клавиш простым способом, часто это достигается простой заменой Input.GetKey на собственный bool, который вы контролируете своим кодом, но вы можете сделать Input Events в Event System. Например, переместитесь влево.

void LeftArrow()
{
    EventSystem eventSystem = EventSystem.Current;
    AxisEventData axisData = new AxisEventData(eventSystem);

    axisData.Reset();
    axisData.moveDir = MoveDirection.Left;
    ExecuteEvents.Execute(eventSystem.currentSelectedGameObject, axisData, ExecuteEvents.moveHandler);
}

Или для кнопок. Например, кнопка "Отправить".

void SubmitButton()
{
    EventSystem eventSystem = EventSystem.Current;
    BaseEventData baseData = new BaseEventData(eventSystem);

    baseData.Reset();
    ExecuteEvents.Execute(eventSystem.currentSelectedGameObject, baseData, ExecuteEvents.submitHandler);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...