Unity android back button

Реализация кнопки Back на Android в Unity3d?

Доброго времени суток!)
В связи со своей не опытностью в геймдеве столкнулся с проблемой что в приложение сделанном на юнити по дефолту аппаратные кнопки андроида не работают -_-
Саму кнопку как отслеживать сделал.

Гугл посоветовал использовать именно Application.Quit(); для выхода из приложения. но у меня ноль эффекта -_- На всякий случай проверил ловится ли нажатие на кнопку, вставив на выполнение загрузку сцены. Кнопка ловит, все в порядке.

Вопрос
Как реализовать выход на сцену назад с последующим выходом из приложения по двойному нажатию на «Назад» с высвечиванием системного сообщения «для выхода из приложения нажмите два раза «назад» «?

  • Вопрос задан более трёх лет назад
  • 11093 просмотра

Простой 6 комментариев

ну с знаете, многовато вы требуете из простого вопроса как сделать кнопку -> как реализовать кучу всего.

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

А по делу — вы уже знаете как отследить одно нажатие.
Вперед , дерзайте.
после первого нажатия отслеживайте второе (таймер там добавить, чтоб два нажатия быстрее чем за N секунд — считается двойным тапом)

не может не срабатывать, ну или вы запускаете в эдиторе или веб билде не почитав документацию, почему-то.

лишь чуток добавлю что #if UNITY_ANDROID и подобное зовется директивами. и это не совсем проверка.
не знаю важно или нет или уже прочитали, но это по сути «знак» компилятору — компилировать этот кусок кода или нет).

«if (Application.platform == RuntimePlatform.Android)
в которой явно прописано что данный код работает только если запускается на андроид.»

ну а про эту строчку просто забыл) простите) очевидным казалось что неё надо если нужно чтоб везде работало))

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

Читайте также:  Px6 android 9 4pda

только свои список . складываем/удаляем элементы при загрузках/переходах.

Источник

Mobile Keyboard

In most cases, Unity will handle keyboard input automatically for GUI elements but it is also easy to show the keyboard on demand from a script.

GUI Elements

The keyboard will appear automatically when a user taps on editable GUI elements. Currently, GUI.TextField, GUI.TextArea and GUI.PasswordField will display the keyboard; see the GUI class documentation for further details.

Manual Keyboard Handling

Use the TouchScreenKeyboard.Open() function to open the keyboard. Please see the TouchScreenKeyboard scripting reference for the parameters that this function takes.

Keyboard Layout Options

The Keyboard supports the following options:-

Property: Function:
TouchScreenKeyboardType.Default Letters. Can be switched to keyboard with numbers and punctuation.
TouchScreenKeyboardType.ASCIICapable Letters. Can be switched to keyboard with numbers and punctuation.
TouchScreenKeyboardType.NumbersAndPunctuation Numbers and punctuation. Can be switched to keyboard with letters.
TouchScreenKeyboardType.URL Letters with slash and .com buttons. Can be switched to keyboard with numbers and punctuation.
TouchScreenKeyboardType.NumberPad Only numbers from 0 to 9.
TouchScreenKeyboardType.PhonePad Keyboard used to enter phone numbers.
TouchScreenKeyboardType.NamePhonePad Letters. Can be switched to phone keyboard.
TouchScreenKeyboardType.EmailAddress Letters with @ sign. Can be switched to keyboard with numbers and punctuation.

Text Preview

By default, an edit box will be created and placed on top of the keyboard after it appears. This works as preview of the text that user is typing, so the text is always visible for the user. However, you can disable text preview by setting TouchScreenKeyboard.hideInput to true. Note that this works only for certain keyboard types and input modes. For example, it will not work for phone keypads and multi-line text input. In such cases, the edit box will always appear. TouchScreenKeyboard.hideInput is a global variable and will affect all keyboards.

Visibility and Keyboard Size

There are three keyboard properties in TouchScreenKeyboard that determine keyboard visibility status and size on the screen.

Property: Function:
visible Returns true if the keyboard is fully visible on the screen and can be used to enter characters.
area Returns the position and dimensions of the keyboard.
active Returns true if the keyboard is activated. This property is not static property. You must have a keyboard instance to use this property.

Note that TouchScreenKeyboard.area will return a Rect with position and size set to 0 until the keyboard is fully visible on the screen. You should not query this value immediately after TouchScreenKeyboard.Open(). The sequence of keyboard events is as follows:

  • TouchScreenKeyboard.Open() is called. TouchScreenKeyboard.active returns true. TouchScreenKeyboard.visible returns false. TouchScreenKeyboard.area returns (0, 0, 0, 0).
  • Keyboard slides out into the screen. All properties remain the same.
  • Keyboard stops sliding. TouchScreenKeyboard.active returns true. TouchScreenKeyboard.visible returns true. TouchScreenKeyboard.area returns real position and size of the keyboard.

Secure Text Input

It is possible to configure the keyboard to hide symbols when typing. This is useful when users are required to enter sensitive information (such as passwords). To manually open keyboard with secure text input enabled, use the following code:

Hiding text while typing

Alert keyboard

To display the keyboard with a black semi-transparent background instead of the classic opaque, call TouchScreenKeyboard.Open() as follows:

Alert keyboard

Источник

Платформер под Android на Unity3D

Пожалуй, даже после выхода нового UI, создание интерфейса для Android’а осталось больной темой для многих.
Новая система “UI”, которая появилась в Unity 4.6 сильно упростила жизнь разработчикам, но все же, хотелось бы прояснить некоторые моменты, которые относятся к Android’у.

Из плюсов:
-Мощный набор инструментов
-Корректное масштабирование на разных разрешениях, что в свою очередь устраняет кучу лишней работы
-Поддержка сенсорного управления без дополнительных настроек
-Гибкость и простота в использовании

Статья будет разделена на две части.

Первая (базовая) — для тех, кто еще только начинает пользоваться Unity3D. Вторая — собственно, сама реализация управления для платформера под Android.

Часть первая

1) Для начала, создайте новую сцену File > New Scene.

2) В папке “Assets” создайте еще две папки: “Scripts” и “Sprites”.

3) Далее, спрайты, которые я подготовил, добавляем в папку “Sprites”.

Спрайты:





Ставим Filter Mode на пункт “Point” платформе и персонажу, поскольку они выполнены в пиксель арте.

Перетаскиваем на сцену спрайт персонажа, пару спрайтов платформ и фон(предварительно увеличив его в размере).

Должно получиться что-то похожее на:

Добавим нашему персонажу такие компоненты как:Rigidbody2D,CircleCollider2D и заморозим возможность вращения по оси Z.
Всем платформам добавим компонент: BoxCollider2D.

4) Добавим на сцену три Image’а через GameObject > UI > Image.

Это и есть наш будущий интерфейс(кнопки: вправо, влево, прыжок).

Подгоняем размеры и идем дальше:

Image’ам слева ставим “привязку” к левому нижнему краю, а правому — к правому нижнему.

Для каждого Image’а в Source Image перетаскиваем свой спрайт.

В результате должно получиться:

Вот и конец первой части.

Во второй части, мы перейдем к скриптингу и добавим кнопкам функционал.

Часть вторая

Теперь перейдем к основному:

1) Создайте новый скрипт в папке “Scripts” и назовите его “CharController” (писать будем на C#).

Вставляем в него код:

“Простота — залог успеха” — в нашем случае так и есть. Передвижение и прыжки персонажа были реализованы через отдельные void’ы.
Повесьте данный скрипт на персонажа. Склеить все это дело вместе, нам поможет Event System.

2) Для удобства переименуйте “кнопки” чтобы не запутаться.

Например:”leftButton”,”rightButton”,”jumpButton”.
Добавим каждой кнопке компонент Event Trigger.

Теперь, кнопке “Влево” в компоненте Event Trigger создайте два новых события — PointerDown и PointerExit.

В PointerDown и PointerExit создайте по одному событию, перетащите на каждый нашего персонажа(на котором обязательно должен висеть скрипт).Кликаем по выпадающему меню и находим наш скрипт “CharController” > void “Move(int)”.

Аналогичные манипуляции проведем с кнопкой “Вправо”.
Кнопке “Прыжок” добавим только PointerEnter > CharController > Jump(bool).

3) Пришло время выставлять значения.

Для кнопки “Вправо” тоже поменяем значение в PointerDown, но на “1”.

4) Запустим наш проект:

Конечно назвать данную статью “Разработка от А до Я” нельзя, но думаю многим теперь будет проще сделать управление для Android’а. Всем спасибо за внимание.

Источник

Button

The Button control responds to a click from the user and is used to initiate or confirm an action. Familiar examples include the Submit and Cancel buttons used on web forms.

A Button.

Свойства

Свойство: Функция:
Interactable Will this component will accept input? See Interactable.
Transition Properties that determine the way the control responds visually to user actions. See Transition Options.
Navigation Properties that determine the sequence of controls. See Navigation Options.

Events

Свойство: Функция:
On Click A UnityEvent that is invoked when when a user clicks the button and releases it.

Детали

The button is designed to initiate an action when the user clicks and releases it. If the mouse is moved off the button control before the click is released, the action does not take place.

The button has a single event called On Click that responds when the user completes a click. Typical use cases include:

  • Confirming a decision (eg, starting gameplay or saving a game)
  • Moving to a sub-menu in a GUI
  • Cancelling an action in progress (eg, downloading a new scene)

Источник

Читайте также:  Владик хочет бухать андроид
Оцените статью