Gradle – это система сборки, которая автоматизирует ряд процессов сборки и предотвращает многие распространенные ошибки сборки. Unity использует Gradle для всех сборок Android. Вы можете создать выходной пакет (.apk, .aab) в Unity или экспортировать проект Gradle из Unity, а затем собрать его с помощью внешнего инструмента, такого как Android Studio.
Для получения дополнительной информации о:
- Gradle: см. руководство пользователя Gradle и Документация по плагину Android Gradle.
- Экспорт проекта Unity как проекта Gradle: см. раздел Экспорт проекта Android.
- Создание выходного пакета (.apk): см. документацию Unity по созданию приложений для Android и документацию для разработчиков Android по настройка сборки.
- Создание выходного пакета (.aab): см. документацию Unity по доставке игровых объектов и документацию для разработчиков Android по Наборы приложений для Android.
Совместимость версий
В следующей таблице показана совместимость версии Gradle и версии Unity.
Версия Unity | Версия Gradle |
---|---|
2022.1 2021.2 2021.1 starting from 2021.1.16f1 2020.3 starting from 2020.3.15f1 |
6.1.1 |
2021.1 up to and including 2021.1.15f1 2020.1, 2020.2, 2020.3 up to and including 2020.3.14f1 |
5.6.4 |
2019.4 | 5.1.1 |
Если вы хотите использовать пользовательскую версию плагина Gradle или Android Gradle, важно знать совместимость версий между Gradle и плагином Android Gradle. Для получения информации об этом см. Обновление Gradle.
Структура проекта Gradle
Если вы экспортируете свой проект Unity как проект Gradle, Unity создает проект Gradle с двумя модулями:
- Модуль UnityLibrary: содержит среду выполнения Unity и данные проекта. Этот модуль представляет собой библиотеку, которую вы можете интегрировать в любой другой проект Gradle. Вы можете использовать его для встраивания Unity в существующие приложения для Android.
- Модуль запуска: содержит название приложения и все его значки. Это простой модуль приложения для Android, который запускает Unity. Вы можете заменить его собственным приложением.
Файл | Описание |
---|---|
build.gradle | Базовый файл Gradle, который влияет на все модули в проекте Gradle. Он указывает, какую версию плагина Android Gradle использовать, и расположение java-плагинов. Места представляют собой комбинацию онлайн-репозиториев и java-плагинов внутри этого проекта. Чтобы повлиять на содержимое этого файла, предоставьте собственный базовый шаблон Gradle. |
gradle.properties | Стандартный файл проекта Gradle, который настраивает сборку приложения. Unity также добавляет имена ресурсов в каталог Streaming Assets и указывает, что эти ресурсы должны быть в конечном приложении, а Gradle не должен их сжимать.
Чтобы повлиять на содержимое этого файла, предоставьте собственный шаблон свойств Gradle. Информацию о свойствах, которые может содержать этот файл, см. в разделе файлы свойств Gradle. . |
launcher | Каталог, содержащий модуль запуска и все, что с ним связано. |
build.gradle | Стандартный файл build.gradle проекта Gradle, который описывает, как собрать модуль запуска, и включает список зависимостей, которые нужно включить в сборку. В Unity модуль запуска зависит от модуля unityLibrary, что означает, что unityLibrary создается и включается в окончательный результат при создании модуля запуска.
Чтобы повлиять на содержимое этого файла, предоставьте собственный шаблон Launcher Gradle. |
src | Стандартный каталог проекта Android Gradle, содержащий исходный код и ресурсы модуля запуска. Unity помещает исходный код и ресурсы в подкаталог main . |
main | Стандартный каталог проекта Android Gradle, содержащий исходный код и ресурсы модуля запуска. Unity поддерживает только основной набор исходников. Дополнительные сведения о наборах исходного кода см. в разделе Создание наборов исходного кода. |
AndroidManifest.xml | Стандартный файл проекта Android Gradle, который Unity объединяет в окончательный манифест приложения Android. Он содержит настройки, специфичные для модуля запуска.
Важно. Если в нескольких файлах манифеста указаны разные значения для одного и того же параметра, процесс объединения манифестов завершится ошибкой, и вам придется исправить это вручную. Вы можете указать правила для слияния манифеста, чтобы автоматически решать, как разрешать конфликты слияния. Информацию о том, как это сделать, см. в разделе Управление файлами манифеста. Информацию о том, как повлиять на содержимое этого файла, см. в разделе Переопределение манифеста приложения Android. |
jniLibs | Стандартный каталог проекта Android Gradle, содержащий собственные библиотеки кода, используемые модулем запуска. |
res | Стандартный каталог проекта Android Gradle, содержащий ресурсы для включения в окончательное приложение. Ресурсы — это значки приложений, текст, к которому приложение обращается во время выполнения, и описания стиля приложения.
Чтобы указать ресурсы в этом каталоге, задайте значки приложений и имя проекта в настройках проигрывателя Android. |
local.properties | Стандартный файл проекта Android Gradle, который настраивает среду системы сборки. Unity указывает здесь путь к SDK и NDK, чтобы по умолчанию экспортированный проект Gradle использовал те же SDK и NDK, что и редактор Unity.
Информацию о свойствах, которые может содержать этот файл, см. в разделе файлы свойств Gradle. . |
settings.gradle | Стандартный файл проекта Android Gradle, в котором указаны все модули, составляющие этот проект Android Gradle. В проектах, экспортируемых Unity, обычно указываются только модули launcher и unityLibrary. Однако, если проект Unity использует доставку игровых ресурсов](play-asset-delivery), каждый пакет ресурсов представляет собой отдельный модуль, поэтому в этом файле они также перечислены.
Чтобы повлиять на содержимое этого файла, скопируйте файл |
unityLibrary | Каталог, содержащий модуль unityLibrary и все, что с ним связано. |
build.gradle | Стандартный файл build.gradle проекта Gradle, который описывает, как собрать модуль unityLibrary, и включает список зависимостей, которые нужно включить в сборку. В Unity модуль unityLibrary зависит от всех плагиновнабора код, созданный вне Unity, который создает функциональность в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее См. Словарь в проекте Unity. Чтобы повлиять на содержимое этого файла, предоставьте собственный основной шаблон Gradle. |
libs | Общий каталог проекта Android Gradle, в котором хранятся подключаемые модули Android Archive (.aar) и Java Archive (.jar) для Модуль UnityLibrary.
Для экспортированных проектов Unity он содержит Примечание. Этот каталог не содержит подключаемых модулей проектов библиотеки Android. Вместо этого Unity копирует их в проект Gradle как отдельные модули. |
unity-classes.jar | Плагин Java для Unity, содержащий код Java, который использует движок Unity.. |
proguard-unity.txt | Файл Unity, содержащий конфигурации ProGuard для кода Java Unity (код в подключаемом модуле unity-classes.jar). Конфигурации действуют, когда минимизация включена в настройках проигрывателянастройках, которые позволяют вам устанавливать различные параметры для конкретного игрока для окончательной игры, созданной Unity. . Подробнее См. в Словарь (или если он включен путем ручного изменения файлов сборки gradle) . |
src | Стандартный каталог проекта Android Gradle, содержащий исходный код и ресурсы модуля unityLibrary. Unity помещает исходный код и ресурсы в подкаталог main . |
main | Стандартный каталог проекта Android Gradle, содержащий исходный код и ресурсы модуля unityLibrary. Unity поддерживает только основной набор исходников. Дополнительные сведения о наборах исходного кода см. в разделе Создание наборов исходного кода.. |
AndroidManifest.xml | Стандартный файл проекта Android Gradle, который Unity объединяет в окончательный манифест приложения Android. Он содержит настройки, специфичные для модуля unityLibrary.
Чтобы повлиять на содержимое этого файла, предоставьте настраиваемый настраиваемый главный манифест. |
assets | Стандартный каталог Android Gradle, содержащий ресурсы проекта. Unity помещает ресурсы проекта Unity в подкаталог bin . |
bin | Стандартный каталог проекта Android Gradle, в который Unity добавляет все ресурсы проекта Unity. |
java | Стандартный каталог проекта Android Gradle, содержащий нескомпилированные исходные файлы Java для модуля unityLibrary. Unity использует этот каталог только для хранения исходного файла UnityPlayerActivity. Информацию о том, как расширить UnityPlayerActivity, см. в разделе Расширение кода Java UnityPlayerActivity. |
jniLibs | Стандартный каталог проекта Android Gradle, содержащий собственные библиотеки кода, используемые модулем unityLibrary. Unity помещает библиотеки движка Unity libil2cpp , libmain и libunity в этот каталог. Unity также размещает в этом каталоге любые подключаемые модули [Native (C++) (AndroidNativePlugins). |
res | Стандартный каталог проекта Android Gradle, содержащий ресурсы для включения в окончательное приложение. Для экспортированных проектов Unity каталог res для модуля unityLibrary содержит только описания стилей, которые использует модуль unityLibrary.. |
proguard-user.txt | Это специальный файл проекта Unity, который содержит конфигурации ProGuard для кода Java проекта и подключаемых модулей Java сторонних разработчиков. Точно так же, как ProGuard-unity.txt , Gradle использует его, если вы включаете минимизацию.
Чтобы создать этот файл, включите Пользовательский файл Proguard в Настройках проигрывателя Android. |