Как вернуться из Unity Player в предыдущую работу Android?

У меня такая же проблема, как упоминалось в этом разделе « Интеграция единства с Eclipse: Back Button Click», но предлагаемые решения не работали.

У меня есть Unity Player, встроенный в собственное приложение для Android. Я могу запустить Unity Player без проблем, но теперь я хочу вернуться к предыдущему действию с помощью кнопки «Назад». Я уже пробовал Application.Quit со стороны Unity и заканчивал () со стороны android, и закрывает все приложение. Я также попытался запустить новую активность из контекста Unity, но это тоже не сработает, я думаю, это связано с тем, что я работаю с фрагментами. Моя настройка активности такова:

MainActivity, где встроено несколько фрагментов. Два из них содержат списки, из которых я могу начать новую активность, которая показывает мне подробные представления элементов списка. Представления деталей также являются фрагментами, в которых вы можете прокручивать влево и вправо на предыдущий / следующий элемент (аналогично приложению gmail). Изнутри подробного представления вы можете запустить Unity, чтобы иметь некоторые дополнения с картой qualcomm vuforia.

До сих пор все работает, но я не могу вернуться с UnityPlayer к представлению деталей.

Кто-нибудь знает, как это достичь?

Благодаря!

Когда вы вернетесь в единство, весь процесс будет убит. Поэтому, когда вы начинаете активность единства посредством андроидной активности, начинайте единичную деятельность в разных процессах. Вы можете сделать это, объявив это в файле манифеста проекта android.

Вы должны добавить в AndroidManifest.xml следующие строки кода для UnityActivity.java:

<activity android:name=".ui.activities.UnityPlayerActivity" android:label="@string/app_name" android:launchMode="singleTask" <-- THIS android:process=":unityplayer" <-- AND THIS ... > ... </activity> 

Он запустит UnityActivity, как другой процесс, и команду Unity: Application.quit (); Будет закрыт только процесс Unity.

Также, если этого недостаточно, вы можете добавить эти строки к активности, которые запускают UnityActivyty. Но будьте осторожны, другая активность пакета будет предоставлять свои собственные sharedPreferences и некоторые другие вещи.

В настоящий момент я работаю над проектом Android с фрагментами Unity3d, и похоже, у меня есть аналогичная проблема.

Насколько я знаю, это не ошибка фрагментов – это Unity делает что-то смешное, как перехватывать события нажатия кнопки «Назад». То, что я сделал, было отменено ниже, чтобы определить, что происходит при нажатии кнопки «Назад»:

 @Override public void onBackPressed() { Log.e("Test", "onBackPressed here"); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { Log.e("Test", "onKeyDown here"); if (keyCode == KeyEvent.KEYCODE_BACK) { Log.e("Test", "onKeyDown was back button"); } return super.onKeyDown(keyCode, event); } 

Проблема, которую я обнаружил, заключается в том, что иногда сообщения журнала не появляются, когда я нажимаю кнопку «Назад», то есть она фактически не зарегистрирована. Сначала я подумал, что это связано с моим вызовом UnityPlayer.pause () в методе onResume (), но когда я снова запускал проект сегодня утром, выяснилось, что проблема сохраняется, и это прерывисто.

Если я придумаю решение, я отредактирую сообщение в этой теме. Надеюсь, объяснение было по крайней мере некоторой помощью.


Редактировать:

Посмотрите на эту ссылку: Не удается передать событие из Unity в jord . Там есть решение, которое вы можете реализовать в своем проекте Unity, чтобы помочь с обработкой нажатия кнопки назад.

Я сделал это, а затем провел еще несколько тестов, и похоже, что метод onBackPressed() получает все права, когда объект UnityPlayer НЕ приостановлен. Это заставляет меня думать, что метод UnityPlayer.pause() следует использовать только тогда, когда ваше приложение будет помещаться в фоновом режиме, а не когда вам просто не нужна модель Unity в данный момент времени.

// Просто добавьте ниже двух строк кода. В манифесте модуля Unity. Под UnityPlayerActivity

  android:launchMode="singleTask" android:process=":unityplayer" 

И Unity back button click event добавить это ниже кода Application.quit ();

Его работа для меня отлично

Intereting Posts
Получение контекста из NativeActivity Как обновить / понизить подписки в Android InAppBilling? Почему React Native's .flowconfig игнорирует файлы .android.js? Как создать диаграмму классов (UML) в Android Studio Перевод идентификатора метки телефона телефона Android в строку Должен ли я всегда заканчивать одну деятельность, прежде чем переходить к другой? Лучший способ реализовать Socket.io в android Android: ручка приложения сбой и запуск определенного действия Android 4.0.1 разбивает локальное хранилище WebView HTML 5? Новый битмап изменен при копировании с использованием буфера Разбор RSS на Android Как удалить и перезапустить приложение на устройстве с помощью Android Studio? Настройки общего доступа или внутреннее хранилище файлов – Любая проблема с памятью? Показывать выпадающий список недавно введенного текста при нажатии на поле редактирования android. Можете ли вы безопасно называть «getDrawable» или «decodeResource» в потоке пользовательского интерфейса в Android