Запуск Unity-проекта на эмуляторе Android часто заканчивается одной и той же ошибкой: сборка собирается успешно, но в списке устройств Build and Run эмулятор просто не отображается. Причина почти всегда в том, что ADB-сервер из Unity не видит запущенную виртуальную машину, либо проект собран под архитектуру, которую эмулятор не поддерживает.
Тестирование мобильной игры без физического смартфона — рабочая практика на ранних этапах разработки. Эмулятор позволяет проверить интерфейс, базовую логику и производительность на разных разрешениях экрана, не покупая парк устройств. Однако связка Unity + Android SDK + эмулятор требует правильной настройки, иначе разработчик тратит часы на диагностику вместо тестирования.
В этой статье разберём, какие эмуляторы подходят для Unity-разработки, как подключить их через ADB, какие настройки сборки критичны и что делать, если игра падает на старте или показывает чёрный экран.
Какие эмуляторы подходят для тестирования Unity-игр
Не каждый эмулятор одинаково полезен для разработчика. Одни ориентированы на геймеров и не дают нормального доступа через ADB, другие создавались специально для отладки приложений. Выбор зависит от задачи: проверка геймплея, тестирование производительности или отладка конкретных функций.
Android Emulator из Android Studio — стандартный вариант. Он устанавливается вместе с Android SDK, который Unity всё равно требует для сборки APK. Эмулятор поддерживает образы с Google Play, разные версии Android и аппаратное ускорение. Главный плюс — гарантированная совместимость с ADB: устройство появляется в списке adb devices сразу после запуска.
Альтернативы вроде BlueStacks, LDPlayer или NoxPlayer тоже можно использовать, но с оговорками. Они рассчитаны на запуск готовых игр, и подключение к ним через ADB требует ручного указания порта. Кроме того, такие эмуляторы часто работают только на x86-образах с трансляцией ARM-кода, что влияет на результаты тестирования производительности.
Установка и настройка Android SDK для Unity
Прежде чем запускать эмулятор, убедитесь, что Unity видит Android SDK. Проще всего установить модуль Android Build Support через Unity Hub — вместе с ним ставятся SDK, NDK и OpenJDK, совместимые с вашей версией редактора. Это избавляет от ручной подборки версий инструментов.
Проверить пути можно в редакторе: откройте Edit → Preferences → External Tools и убедитесь, что поля Android SDK и NDK заполнены и не отмечены предупреждениями. Если SDK установлен отдельно через Android Studio, укажите путь к нему вручную.
Для создания виртуального устройства потребуется AVD Manager из Android Studio. Порядок действий в общем виде такой:
- 🛠️ Установите Android Studio и через
SDK Managerзагрузите нужную версию платформы Android и образ системы. - 📱 Откройте
Device Managerи создайте виртуальное устройство, выбрав модель и образ системы. - ⚡ Включите аппаратное ускорение (Intel HAXM, Hyper-V или WHPX — зависит от вашей системы и процессора), иначе эмулятор будет работать мучительно медленно.
- 🚀 Запустите созданное устройство и дождитесь полной загрузки системы.
☑️ Готовность эмулятора к работе с Unity
Подключение эмулятора через ADB
Unity общается с устройствами через ADB (Android Debug Bridge). Если эмулятор запущен, но Unity его не видит, первым делом проверьте, что возвращает команда:
adb devices
Исполняемый файл adb.exe находится в папке platform-tools внутри Android SDK. В норме вывод содержит строку вида emulator-5554 device. Если список пуст — перезапустите ADB-сервер командами adb kill-server и adb start-server.
Отдельная ситуация — сторонние эмуляторы вроде BlueStacks. Их нужно подключать вручную, указав адрес и порт, который эмулятор слушает для ADB. Типичная команда выглядит так:
adb connect 127.0.0.1:5555
Точный порт зависит от конкретного эмулятора и его версии — сверьтесь с документацией выбранной программы. После успешного подключения устройство появится и в списке ADB, и в окне запуска сборки Unity.
⚠️ Внимание: если одновременно установлены несколько Android SDK (например, от Unity Hub и от Android Studio), в PATH могут оказаться разные версии ADB. Конфликт версий сервера приводит к тому, что устройство то появляется, то исчезает. Оставьте один SDK и пропишите путь к нему единообразно.
Настройки сборки Unity под эмулятор
Критичный момент, о котором часто забывают, — целевая архитектура. Большинство эмуляторов на ПК работают на процессорах x86/x86_64, тогда как реальные смартфоны — на ARM. Если в настройках проекта включена только сборка под ARM, APK физически не установится на эмулятор без трансляции.
Откройте File → Build Settings → Player Settings → Other Settings и проверьте секцию Target Architectures. Для тестирования на эмуляторе добавьте x86_64 к привычному ARM64. Учтите: для публикации в Google Play требуется ARM64, поэтому перед релизом набор архитектур нужно будет перепроверить.
Также обратите внимание на графический API. В Player Settings → Other Settings → Graphics APIs для эмулятора стабильнее работает OpenGL ES 3; поддержка Vulkan в эмуляторах зависит от версии образа и драйверов хост-системы. Если игра показывает чёрный экран или артефакты, порядок графических API в списке — первое, что стоит изменить.
Сравнение эмуляторов для Unity-разработки
Чтобы выбор был нагляднее, сведём ключевые характеристики популярных решений в одну таблицу. Данные носят общий характер: возможности конкретных версий могут отличаться, проверяйте актуальную документацию.
| Эмулятор | Подключение по ADB | Архитектура | Подходит для разработки |
|---|---|---|---|
| Android Emulator (Android Studio) | Автоматически | x86_64, есть образы ARM | Да, основной инструмент |
| BlueStacks | Вручную через порт | x86 с трансляцией ARM | Ограниченно, для проверки геймплея |
| LDPlayer | Вручную через порт | x86 с трансляцией ARM | Ограниченно |
| Genymotion | Через ADB | x86 | Да, ориентирован на разработчиков |
Вывод из таблицы простой: для полноценной отладки подходят инструменты, созданные для разработчиков. Игровые эмуляторы годятся как дополнительный способ проверить, как игра ощущается «в руках», но не как замена отладочной среды.
Типичные ошибки и их решение
Самая частая причина, почему Unity-сборка не запускается на эмуляторе, — несовпадение архитектуры APK и виртуального устройства. Если при установке появляется ошибка вроде INSTALL_FAILED_NO_MATCHING_ABIS, это прямой указатель: в APK нет нативных библиотек под архитектуру эмулятора. Решение — добавить x86_64 в Target Architectures и пересобрать проект.
Другие распространённые симптомы:
- 🖥️ Чёрный экран после запуска — попробуйте сменить графический API на OpenGL ES или отключить автоопределение графики в настройках эмулятора.
- 🐢 Крайне низкая производительность — проверьте, включено ли аппаратное ускорение виртуализации в BIOS/UEFI и в настройках эмулятора.
- 🔌 Устройство пропадает из списка — вероятен конфликт нескольких версий ADB; перезапустите сервер и оставьте один SDK.
- 📦 Ошибка установки APK — убедитесь, что на виртуальном устройстве достаточно свободного места и версия Android не ниже минимальной из настроек проекта.
⚠️ Внимание: результаты замеров производительности на эмуляторе нельзя напрямую переносить на реальные устройства. Трансляция кода, особенности графического стека и ресурсы хост-машины искажают картину. Финальную проверку FPS и стабильности всегда проводите на физическом смартфоне.
Альтернатива
Unity Remote:Если эмулятор работает слишком медленно, попробуйте приложение Unity Remote на реальном смартфоне. Оно транслирует картинку из редактора на устройство и передаёт ввод обратно — проект при этом выполняется на ПК. Это быстрый способ тестировать управление и интерфейс без сборки APK, хотя и без реальной производительности устройства.
Часто задаваемые вопросы
Можно ли тестировать Unity-игру на эмуляторе без Android Studio?
Для сборки APK нужен Android SDK, но саму студию ставить необязательно: Unity Hub устанавливает SDK вместе с модулем Android Build Support. Однако для создания виртуальных устройств удобнее всего Android Studio — без неё придётся управлять AVD через командную строку или использовать сторонний эмулятор.
Почему эмулятор не виден в списке устройств Unity?
Проверьте вывод команды adb devices: если устройства нет там, проблема в ADB, а не в Unity. Перезапустите ADB-сервер, убедитесь, что эмулятор полностью загрузился, и исключите конфликт нескольких установленных SDK.
Какую архитектуру выбрать для эмулятора?
Для эмуляторов на ПК добавьте x86_64 в Target Architectures. Для реальных устройств и публикации в Google Play обязательна ARM64. Оптимально держать обе архитектуры на этапе разработки.
Игра тормозит на эмуляторе — это проблема проекта?
Не обязательно. Эмулятор сам по себе требователен к ресурсам, а трансляция ARM-кода дополнительно снижает скорость. Включите аппаратное ускорение, выделите виртуальному устройству больше памяти и ядер, а выводы о производительности делайте только по тестам на физическом устройстве.
Можно ли использовать BlueStacks для отладки?
Технически да: BlueStacks поддерживает подключение по ADB через указание порта. Но это игровой эмулятор, поэтому для серьёзной отладки лучше подходит Android Emulator или Genymotion — они дают корректное окружение и предсказуемое поведение.