Страница 1 из 1

Аппаратная кнопка "назад" на мобильном устройстве

СообщениеДобавлено: 09 авг 2018, 00:10
kor1b
Здравствуйте. Пытаюсь реализовать функцию возврата в предыдущее меню с помощью аппаратной кнопки "назад". Перерыл весь гугл, но везде пишут одно и то же:
Синтаксис:
Используется csharp
private void Update()
        {
                if (Application.platform == RuntimePlatform.Android)
                {
                if (Input.GetKey(KeyCode.Home) || Input.GetKey(KeyCode.Escape) || Input.GetKey(KeyCode.Menu))
                {
                        Debug.Log("Work");
                        Back();//метод, который выполняется при нажатии
                }
                }
        }

Дело в том, что у меня мейзу (если кто не знает, то тут кнопка возврата сенсорная и вызывается прикосновением к кнопке "домой"). Тестирую на unity remote 5. И хотел бы узнать: это баг remote или для мейзу все нужно делать по-другому?

Re: Аппаратная кнопка "назад" на мобильном устройстве

СообщениеДобавлено: 10 авг 2018, 09:28
v319
1. Returns true while the user holds down the key identified by name. Вам точно нужно удержание на мобильном ?
2. А что мешает посмотреть код кнопки "назад" ?
3. Имхо, такие штуки лучше делать через platform dependent compilation, иначе у вас в апдейте будет лишний if

Re: Аппаратная кнопка "назад" на мобильном устройстве

СообщениеДобавлено: 10 авг 2018, 09:47
IDoNotExist
kor1b писал(а):Здравствуйте. Пытаюсь реализовать функцию возврата в предыдущее меню с помощью аппаратной кнопки "назад".

Кнопка "назад" - KeyCode.Escape;
Кнопка "домой" - KeyCode.Home;
Кнопка "меню" - KeyCode.Menu;

а условие у тебя:
if (Input.GetKey(KeyCode.Home) || Input.GetKey(KeyCode.Escape) || Input.GetKey(KeyCode.Menu))

Соответственно, оно сработает при нажатии на любую из 3-х кнопок, соответственно если тебе нужно чтобы срабатывало только по кнопке "назад", то ты в условии оставляешь только KeyCode.Escape:
if (Input.GetKey(KeyCode.Escape))

Re: Аппаратная кнопка "назад" на мобильном устройстве

СообщениеДобавлено: 10 авг 2018, 14:19
kor1b
v319 писал(а):1. Returns true while the user holds down the key identified by name. Вам точно нужно удержание на мобильном ?
2. А что мешает посмотреть код кнопки "назад" ?
3. Имхо, такие штуки лучше делать через platform dependent compilation, иначе у вас в апдейте будет лишний if


Так дело не в этом. У меня на сцене есть кнопка "назад", которая работает так, как нужно. Суть в том, что у меня не срабатывает именно аппаратная кнопка, вот и ищу способ вызвать ее

Re: Аппаратная кнопка "назад" на мобильном устройстве

СообщениеДобавлено: 10 авг 2018, 14:21
kor1b
IDoNotExist писал(а):
kor1b писал(а):Здравствуйте. Пытаюсь реализовать функцию возврата в предыдущее меню с помощью аппаратной кнопки "назад".

Кнопка "назад" - KeyCode.Escape;
Кнопка "домой" - KeyCode.Home;
Кнопка "меню" - KeyCode.Menu;

а условие у тебя:
if (Input.GetKey(KeyCode.Home) || Input.GetKey(KeyCode.Escape) || Input.GetKey(KeyCode.Menu))

Соответственно, оно сработает при нажатии на любую из 3-х кнопок, соответственно если тебе нужно чтобы срабатывало только по кнопке "назад", то ты в условии оставляешь только KeyCode.Escape:
if (Input.GetKey(KeyCode.Escape))

Весь прикол в то, что у меня не срабатывает вообще. Что я жму "домой", что "назад", что "меню" - ноль эффекта. Эти условия я ставил только для того, чтобы проверить, вдруг сработает хоть с какой-то из кнопок

Re: Аппаратная кнопка "назад" на мобильном устройстве

СообщениеДобавлено: 10 авг 2018, 16:35
1max1
сделай простенький скриптик который выведет какая кнопка нажата в данный момент и посмотри свои кнопки

Re: Аппаратная кнопка "назад" на мобильном устройстве

СообщениеДобавлено: 10 авг 2018, 23:43
kor1b
Всем спасибо за помощь. Проблема решилась сама собой. Дело в том (не знаю, может, это только у меня так), но unity remote 5 не реагирует на аппаратные кнопки. Когда сделал билд под андроид, то кнопки чудом заработали)