Не билдится проект Unity: полное руководство по решению проблемы

Когда сборка проекта Unity обрывается с красными сообщениями в консоли, первым делом нужно открыть окно Console и прочитать первую ошибку сверху — именно она, а не десятки последующих, указывает на реальную причину сбоя. В большинстве случаев сборка не запускается из-за ошибок компиляции скриптов, конфликта версий SDK/JDK/NDK при сборке под Android, повреждённых плагинов или нехватки места на диске.

Эта статья поможет системно разобраться, почему проект не билдится, и устранить проблему без переустановки редактора. Мы пройдёмся по всем типичным причинам — от банальных до тех, которые сложно диагностировать, и покажем порядок действий для каждой.

Шаг 1: Проверьте консоль на ошибки компиляции

Unity не начнёт сборку, пока в проекте есть хотя бы одна ошибка компиляции скриптов. Откройте окно Window → General → Console и включите фильтр ошибок (красный значок). Если видите записи вида CS0246: The type or namespace name could not be found — проблема в коде, а не в настройках билда.

Частый источник таких ошибок — использование в скриптах пространства имён UnityEditor без обёртки. Код, который работает только в редакторе, должен находиться в папке Editor или быть заключён в директиву препроцессора:

#if UNITY_EDITOR

using UnityEditor;

#endif

Если этот код попадёт в сборку, компилятор выдаст ошибку, потому что библиотеки редактора недоступны в билде. Проверьте все скрипты, где упоминается UnityEditor, и изолируйте их отвечающим способом.

⚠️ Внимание: ошибки компиляции могут «прятаться» за предупреждениями. Очистите консоль кнопкой Clear, затем попробуйте запустить сборку снова — так вы увидите только актуальные сообщения, относящиеся к текущей попытке.

Шаг 2: Диагностика проблем с SDK, JDK и NDK (Android)

Если вы собираете проект под Android, самая частая причина сбоя — несовместимость инструментов сборки. Unity работает только с определёнными версиями Android SDK, JDK и NDK, и эти версии зависят от версии самого редактора.

Проверьте настройки внешних инструментов: Edit → Preferences → External Tools. Убедитесь, что установлены галочки на использовании встроенных инструментов Unity (JDK installed with Unity, SDK installed with Unity, NDK installed with Unity). Если вы указывали собственные пути — временно верните встроенные варианты и повторите сборку.

  • 🔧 Gradle build failed — ошибка сборочной системы Gradle; чаще всего связана с конфликтом зависимостей в плагинах или устаревшим build.gradle.
  • 📦 SDK not found — Unity не находит Android SDK; проверьте путь и наличие нужных компонентов в SDK Manager.
  • JDK version mismatch — несовместимая версия Java; используйте JDK, поставляемый с редактором.
  • 🧩 NDK missing — отсутствует NDK, необходимый для сборки с IL2CPP; установите его через Unity Hub в разделе модулей.
📊 На каком этапе у вас чаще всего ломается сборка Unity?
Ошибки компиляции скриптов
Проблемы с SDK/Gradle (Android)
Конфликты плагинов
Зависание или нехватка памяти

Шаг 3: Конфликты плагинов и дублирующихся библиотек

Сторонние плагины — рекламные сети, аналитика, биллинг — нередко привозят с собой одинаковые библиотеки разных версий. При сборке под Android это вызывает ошибку Duplicate class found, а под iOS — конфликты при сборке Xcode-проекта.

Как найти виновника: временно удалите (или переместите из проекта) половину плагинов и попробуйте собрать. Если сборка прошла — верните половину удалённых и повторите. Метод деления пополам позволяет быстро локализовать конфликтующий пакет даже в большом проекте.

Для Android также проверьте файл mainTemplate.gradle и настройки Custom Main Gradle Template в Player Settings → Publishing Settings — ручные правки там могут ломать сборку после обновления плагинов.

Шаг 4: Проверка Build Settings и ресурсов проекта

Иногда причина кроется в самих настройках сборки. Откройте File → Build Settings и убедитесь, что выбранная платформа установлена через Unity Hub — если модуль поддержки платформы отсутствует, кнопка Build может быть неактивна или сборка будет падать сразу.

Также проверьте, что в список сцен Scenes In Build добавлена хотя бы одна сцена, а путь сохранения билда не содержит кириллицы и специальных символов. Путь с русскими буквами — недооценённая причина сбоев, особенно при сборке через Gradle.

☑️ Чек-лист перед сборкой

Выполнено: 0 / 6

Отдельно стоит упомянуть дисковое пространство. Сборка с IL2CPP требует заметно больше места, чем кажется: промежуточные файлы компиляции C++ могут занимать несколько гигабайт. Если на системном диске меньше 10–15 ГБ свободного места, сборка крупного проекта может обрываться без внятного сообщения об ошибке.

Шаг 5: Проблемы с памятью и зависания при сборке

Когда сборка зависает на этапе Building scene или Compiling scripts и редактор «умирает» без ошибки — вероятная причина в нехватке оперативной памяти или в слишком тяжёлых ресурсах проекта.

Что можно предпринять в такой ситуации:

  • 💾 Закройте посторонние приложения (браузеры, IDE) и повторите сборку — особенно актуально при 8–16 ГБ ОЗУ.
  • 🗜️ Уменьшите максимальное разрешение текстур в Project Settings → Quality для тестовой сборки.
  • 🧹 Очистите кэш: удалите папку Library при закрытом редакторе — Unity пересоздаст её при следующем запуске.
  • 🎛️ Попробуйте сборку с Mono вместо IL2CPP (для Android) — она быстрее и менее требовательна к ресурсам.
⚠️ Внимание: удаление папки Library приведёт к полному переимпорту всех ассетов — в большом проекте это может занять длительное время. Перед удалением убедитесь, что проект закрыт, и при необходимости сделайте резервную копию.

Таблица типичных ошибок и их решений

Ошибка / симптом Вероятная причина Решение
Сборка не начинается, кнопка неактивна Ошибки компиляции или нет модуля платформы Исправить скрипты, установить модуль в Unity Hub
Gradle build failed Конфликт зависимостей плагинов Метод деления пополам, проверка gradle-шаблонов
Duplicate class found Дублирующиеся библиотеки в плагинах Удалить дубликаты .jar/.aar
Зависание на Building scene Нехватка ОЗУ, тяжёлые ассеты Закрыть приложения, снизить качество текстур
Сбой без сообщения Нехватка места на диске, кириллица в путях Освободить место, сменить путь сборки

Шаг 6: Когда ничего не помогает

Если все проверки пройдены, а проект по-прежнему не билдится, остаётся несколько радикальных, но эффективных мер. Сначала создайте пустой проект на той же версии Unity и попробуйте собрать его — так вы отделите проблемы установки редактора от проблем самого проекта.

Если пустой проект собирается, а ваш — нет, переносите ассеты частями или выполните Assets → Reimport All. Если не собирается даже пустой проект — переустановите модуль платформы или сам редактор через Unity Hub, предварительно убедившись, что версия не имеет известных проблем со сборкой (проверьте раздел Known Issues в примечаниях к релизу).

Как читать Editor.log для глубокой диагностики

Полный лог сборки находится в файле Editor.log. На Windows он расположен по пути %LOCALAPPDATA%\Unity\Editor\Editor.log, на macOS — ~/Library/Logs/Unity/Editor.log. Откройте файл после неудачной сборки и ищите строки с "error" и "exception" — там часто видны детали, которые консоль редактора не показывает, особенно при сбоях Gradle и IL2CPP.

Часто задаваемые вопросы

Почему проект работает в редакторе, но не билдится?

Редактор и сборка используют разные наборы библиотек. Чаще всего причина в коде, зависящем от UnityEditor, который недоступен в билде, либо в плагинах, не имеющих поддержки целевой платформы. Проверьте консоль на ошибки компиляции и изолируйте редакторный код директивой #if UNITY_EDITOR.

Ошибка Gradle build failed — что делать в первую очередь?

Откройте Edit → Preferences → External Tools и включите использование встроенных JDK/SDK/NDK. Затем удалите папки Temp и Library при закрытом проекте и повторите сборку. Если ошибка сохраняется — ищите конфликт зависимостей в плагинах методом деления пополам.

Может ли кириллица в путях ломать сборку?

Да, это подтверждённая причина сбоев, особенно при сборке под Android через Gradle и при работе IL2CPP. Убедитесь, что путь к проекту, путь сохранения билда и имя пользователя системы не содержат кириллических символов.

Сборка зависает на 90% и не завершается — это нормально?

Длительная сборка на этапах IL2CPP-компиляции и упаковки ресурсов может занимать десятки минут в крупном проекте — это не обязательно зависание. Проверьте активность процессов в диспетчере задач: если CPU и диск нагружены, сборка идёт. Если активности нет длительное время — проверяйте свободное место на диске и объём ОЗУ.

Нужно ли переустанавливать Unity, если не билдится проект?

Переустановка — крайняя мера. Сначала проверьте, собирается ли пустой проект: если да, проблема в вашем проекте, и переустановка редактора не поможет. Переустанавливать имеет смысл только модуль целевой платформы или сам редактор при подтверждённых сбоях установки.