Интеграция Unity в Android приложения
На этой странице описывается, как интегрировать библиотеку Runtime Unity в приложения Android, используя Unity в качестве библиотеки.
Вы можете использовать эту функцию, чтобы включить в приложение функции, поддерживаемые Unity, такие как 3D/2D Real-Time Rendering, AR Experience, 3D Model Interaction или 2D Mini-Games. Библиотека Runtime Unity предоставляет средства управления, позволяющие управлять, когда и как загружается, активируется и выгружается содержимое в приложении.
Важно: Внедрение Unity в качестве библиотеки в вашем проекте может потребовать адаптации собственных и управляемых плагинов для надлежащей работы с Android. Плагины, которые изменяют манифесты Gradle, должны использовать изменения Gradle, описанные в Использование Unity в качестве библиотеки в собственных iOS/Android приложениях.
Как это работает
Вам не нужно делать ничего другого, когда вы создаете свой проект Gradle из Unity.
Каждый Android проект Gradle, созданный Unity, имеет следующую структуру:
- Часть библиотеки в модуле unityLibrary, которую можно интегрировать в любой другой проект Gradle. Она содержит данные времени выполнения и плеера Unity.
- Тонкая пусковая часть в пусковая установка модуль, который содержит имя приложения и его значки. Это простой Android приложение, которое запускает Unity. Вы можете заменить этот модуль своим собственным приложением.
Чтобы интегрировать Unity в другой проект Gradle Android, необходимо включить модуль unityLibrary сгенерированного проекта Gradle Android в проект Gradle Android Unity Project через файл settings.gradle.
Это хранилище содержит примеры проектов и плагинов, демонстрирующих, как интегрировать Unity в Android приложение, вместе с дополнительной документацией.
Чтобы управлять проигрывателем, ретранслируйте Intent для запуска действия Unity и расширяйте его при необходимости. Дополнительные сведения см. в документации для разработчиков Android по Intents и фильтрам Intent. Также можно использовать UnityPlayer Java API.
IUnityPlayerLifecycleEvents
IUnityPlayerLifecycleEvents обеспечивает способ взаимодействия с двумя важными событиями жизненного цикла Unity Player:
- Unload — Приложение вызывает
IUnityPlayerLifecycleEvents.onUnityPlayerUnloaded, когдаApplication.UnloadилиUnityPlayer.unload()выгружает Unity Player. Это переводит Unity Player в приостановленное состояние, в котором он выгружает все сцены, но всё остальное остаётся загруженным в памяти. - Quit — Приложение вызывает
IUnityPlayerLifecycleEvents.onUnityPlayerQuittedпри выходе из Unity Player. Процесс, который запускал Unity, заканчивается после этого вызова.
Вы можете передать экземпляр IUnityPlayerLifecycleEvents конструктору UnityPlayer либо чтобы переопределить методы в подклассах UnityPlayer и UnityPlayerActivity.
Ограничения
Unity не контролирует жизненный цикл выполнения, поэтому Unity как Библиотека может не работать для всех возможных случаев использования. Известные ограничения включают:
- Unity как Библиотека поддерживает только полноэкранное отображение. Однако, если вы являетесь клиентом Unity Industry, ограничения и возможности могут отличаться.
- Нельзя загружать или интегрировать более одного экземпляра времени выполнения Unity.
- Вам может потребоваться адаптировать сторонние плагины (как нативные, так и управляемые) для работы с временем выполнения Unity.
- Unity как Библиотека несовместима с платформой приложений Xamarin.
- Вы не можете интегрировать Unity Runtime Library как динамический модуль с Play Feature Delivery.