Ошибка «Android SDK not found» при первой сборке проекта под Android — самая частая проблема, с которой сталкиваются разработчики в Unity: движок установлен, но путь к Android SDK не прописан или модуль поддержки платформы не загружен через Unity Hub. Проверить это можно за минуту: откройте Edit → Preferences → External Tools и посмотрите, отображаются ли пути к SDK, NDK и JDK без предупреждающих значков.
Разработка мобильных игр на Unity под Android остаётся одним из самых доступных способов войти в геймдев: движок бесплатен для начинающих, поддерживает визуальное программирование и C#, а готовый проект можно собрать в APK или AAB и опубликовать в Google Play. В этой статье разберём установку инструментов, настройку проекта, сборку, типичные ошибки и оптимизацию производительности.
Установка Unity и модулей для Android
Начните с установки Unity Hub — официального менеджера версий движка. Через него загружается редактор нужной версии (рекомендуется LTS-ветка, так как она получает стабильные обновления) и дополнительные модули. При установке редактора обязательно отметьте галочкой Android Build Support — вместе с ним подтянутся SDK, NDK и OpenJDK, совместимые с выбранной версией Unity.
Если модуль не был установлен сразу, его можно добавить позже: в Unity Hub откройте вкладку Installs, нажмите на шестерёнку рядом с версией редактора и выберите Add Modules. После установки перезапустите редактор, чтобы пути к инструментам подхватились автоматически.
- 📦 Android Build Support — основной модуль платформы;
- 🔧 Android SDK & NDK Tools — инструменты сборки и нативной отладки;
- ☕ OpenJDK — среда Java, необходимая для компиляции;
- 📱 Драйверы устройства — для тестирования на реальном смартфоне по USB.
Настройка проекта под Android
После создания проекта переключите целевую платформу: откройте File → Build Settings, выберите Android и нажмите Switch Platform. Процесс реимпорта ассетов может занять время на больших проектах — это нормально. Далее откройте Edit → Project Settings → Player и задайте ключевые параметры.
В разделе Other Settings укажите Package Name в формате com.company.gamename — этот идентификатор должен быть уникальным, изменить его после публикации в Google Play нельзя. Также настройте минимальную версию Android API: чем она ниже, тем шире охват устройств, но тем меньше современных функций доступно. Подбор конкретного уровня API зависит от вашей целевой аудитории.
Обратите внимание на параметр Scripting Backend: вариант IL2CPP обычно даёт лучшую производительность и требуется для сборки 64-битных версий, которые Google Play обязательно запрашивает при публикации. Вариант Mono собирается быстрее и удобен на этапе отладки.
Подключение устройства и тестирование
Для запуска игры на реальном смартфоне включите на устройстве режим разработчика: откройте настройки телефона, найдите раздел «О телефоне» и несколько раз нажмите на пункт «Номер сборки» — точное расположение пункта зависит от оболочки производителя. Затем в появившемся меню «Для разработчиков» активируйте отладку по USB.
Подключите смартфон к компьютеру кабелем и подтвердите запрос на разрешение отладки на экране устройства. В Unity в окне Build Settings выберите устройство в списке Run Device и нажмите Build And Run — игра соберётся и сразу установится на телефон.
⚠️ Внимание: если устройство не отображается в списке, проверьте кабель (некоторые кабели передают только питание), драйверы и то, что на смартфоне подтверждён запрос на отладку. Не используйте USB-хабы без необходимости — подключайте кабель напрямую к порту компьютера.
Сборка APK и AAB: пошаговая инструкция
Сборка установочного файла выполняется через окно File → Build Settings. Для локального тестирования достаточно формата APK — его можно установить на устройство вручную. Для публикации в Google Play потребуется формат AAB (Android App Bundle): включите опцию Build App Bundle в том же окне.
☑️ Проверка перед сборкой релизной версии
Подпись приложения выполняется через keystore — файл ключа, который создаётся в разделе Player Settings → Publishing Settings. Сохраните этот файл и пароли в надёжном месте: потеря ключа лишит вас возможности обновлять опубликованное приложение.
Что такое keystore и зачем он нужен
Keystore — это защищённый паролем контейнер с цифровым ключом разработчика. Android требует, чтобы все обновления приложения были подписаны тем же ключом, что и первая версия. Если ключ утерян, обновить приложение под тем же Package Name не получится — придётся публиковать его заново как новое.
Типичные ошибки при сборке и их решение
Большинство проблем на этапе сборки связано с инструментами Android, а не с кодом игры. Ниже — распространённые сценарии и способы диагностики.
| Ошибка | Вероятная причина | Что проверить |
|---|---|---|
| SDK not found | Не прописан путь к SDK | Пути в Preferences → External Tools |
| Gradle build failed | Конфликт плагинов или версий | Лог в Console, совместимость плагинов |
| Device not found | Нет драйвера или отладка выключена | Отладка по USB, кабель, драйверы |
| Duplicate class | Два плагина содержат одну библиотеку | Папку Plugins/Android на дубли |
Если сборка зависла или упала с непонятной ошибкой, первым делом посмотрите полный текст в окне Console — там обычно указан конкретный этап, на котором произошёл сбой. Часто помогает очистка кэша сборки: удалите папки Library и Temp в корне проекта (при закрытом редакторе) и дайте Unity пересобрать проект.
⚠️ Внимание: удаление папки Library безопасно — Unity восстановит её автоматически, но первая после этого загрузка проекта займёт заметно больше времени. Не удаляйте папки Assets и ProjectSettings — в них хранятся сами ресурсы и настройки проекта.
Оптимизация игры под Android
Мобильные устройства сильно различаются по производительности, поэтому оптимизация — обязательная часть разработки. Начните с профилирования: встроенный Unity Profiler при подключённом устройстве показывает, что именно нагружает процессор или видеочип — скрипты, отрисовку или физику.
Основные направления оптимизации:
- 🎨 Сжатие текстур в формат ASTC — снижает объём памяти и ускоряет загрузку;
- 🔢 Уменьшение draw calls через объединение мешей и атласы спрайтов;
- 💡 Запечённое освещение (light baking) вместо динамических источников света;
- ⚙️ Ограничение частоты кадров через
Application.targetFrameRateдля снижения нагрева; - 🧹 Пулы объектов вместо частых вызовов
InstantiateиDestroy.
Тестируйте производительность именно на слабом или среднем устройстве, а не только на флагмане — именно так вы увидите реальную картину для большинства игроков. Проверяйте также поведение игры при длительной сессии: утечки памяти часто проявляются только через 15–20 минут игры.
Публикация в Google Play: краткий обзор
Для публикации потребуется аккаунт разработчика Google Play и подписанный AAB-файл. В консоли разработчика заполняется описание приложения, загружаются скриншоты и графические материалы, указывается возрастной рейтинг и политика конфиденциальности — последняя обязательна, если игра собирает какие-либо данные.
Перед открытым релизом имеет смысл использовать закрытое или открытое тестирование: Google Play позволяет раздать сборку ограниченной группе пользователей и собрать отчёты о падениях до массового запуска. Требования к оформлению страницы и этапы проверки могут меняться, поэтому сверяйтесь с актуальной документацией Google Play Console.
Часто задаваемые вопросы
Можно ли разрабатывать на Unity под Android бесплатно?
Да. Unity предоставляет бесплатный план Personal для разработчиков с небольшим доходом, а инструменты Android SDK, NDK и OpenJDK распространяются бесплатно. Платным является только аккаунт разработчика Google Play для публикации.
Что лучше собирать для теста — APK или AAB?
Для локального тестирования удобнее APK: его можно установить на устройство напрямую. AAB предназначен для загрузки в Google Play, который сам формирует оптимизированные APK под конкретные устройства пользователей.
Почему игра тормозит на телефоне, хотя в редакторе работает плавно?
Редактор работает на компьютере, мощность которого значительно выше мобильной. Проверьте игру через Profiler на реальном устройстве: типичные причины просадок — большое число draw calls, тяжёлые текстуры без сжатия и частое создание объектов в коде.
Нужно ли знать C# для разработки на Unity?
Для полноценной разработки — да, основной язык Unity это C#. Однако начать можно с визуального скриптинга (Visual Scripting) и простых обучающих проектов, постепенно переходя к коду.
Что делать, если Unity не видит смартфон при подключении?
Проверьте, что на устройстве включён режим разработчика и отладка по USB, запрос на разрешение отладки подтверждён, кабель поддерживает передачу данных, а драйверы устройства установлены на компьютере. Также помогает перезапуск редактора и смена USB-порта.