Сборка билда: Windows, WebGL и Android
Игра живёт в редакторе только у тебя. Чтобы в неё сыграли другие, её собирают в билд — самостоятельную программу. Это финальный шаг.
Суть: сборка (build) превращает проект в запускаемую программу под конкретную платформу:
.exeдля Windows, страницу для браузера (WebGL),.apkдля Android. Делается через Build Settings: выбираешь платформу, добавляешь сцены, настраиваешь имя и иконку в Player Settings и жмёшь Build.
Пока игра в редакторе, в неё играешь только ты через кнопку Play. Чтобы поделиться, нужно собрать билд — Unity скомпилирует проект в отдельную программу, которая запустится без редактора. Для каждой платформы свой формат: Windows — .exe, браузер — WebGL-страница, телефон — .apk.
Открываешь File → Build Settings. Слева — список платформ; выбери нужную и нажми Switch Platform (для Android и WebGL нужны установленные модули из Unity Hub). Сверху — список сцен в сборке: добавь все сцены игры в правильном порядке (сцена с индексом 0 загружается первой).
Как работает под капотом
Конвейер сборки:
Твой проект (Assets)
|
[выбор платформы] -> Windows / WebGL / Android
|
[список сцен] -> index 0 грузится первой
|
[Player Settings] -> имя, иконка, разрешение, ориентация
|
[Build] -> компиляция кода + упаковка ассетов
|
v
Готовый билд: MyGame.exe / index.html / MyGame.apkВ Player Settings задают название продукта, компанию, иконку, стартовое разрешение. Для WebGL — размер канваса, для Android — ориентацию экрана и минимальную версию системы.
Часть сборки — выбор сцен и порядок их загрузки. Смоделируем валидацию списка сцен билда на Python:
# Список сцен в сборке: имя и индекс. Сцена 0 грузится первой
build_scenes = [
{"name": "MainMenu", "enabled": True},
{"name": "Level1", "enabled": True},
{"name": "Level2", "enabled": True},
{"name": "TestScene","enabled": False}, # отключена, в билд не пойдёт
]
active = [s for s in build_scenes if s["enabled"]]
for i, s in enumerate(active):
first = " (грузится первой)" if i == 0 else ""
print(f"index {i}: {s['name']}{first}")
# Проверим, что игрок пытается загрузить существующую сцену
def can_load(name):
return any(s["name"] == name and s["enabled"] for s in build_scenes)
print("Загрузить Level2?", can_load("Level2"))
print("Загрузить TestScene?", can_load("TestScene")) # отключена -> нельзяТа же логика на Python ▶ — в билд попадают только включённые сцены, и порядок задаёт, какая загрузится первой. Если попытаться загрузить сцену, которой нет в сборке, игра упадёт с ошибкой — поэтому список сцен проверяют заранее.
Частые ошибки
- Забыть добавить сцены. Самая частая ошибка релиза: игра собралась, но
LoadSceneне находит уровень — его нет в Build Settings. - Неправильный порядок сцен. Если уровень оказался под индексом 0 вместо меню, игра стартует не с того экрана.
- Не поставить модуль платформы. Без модуля Android или WebGL из Hub соответствующую платформу не выбрать.
- Тяжёлые ассеты в WebGL. Браузерный билд должен быстро грузиться; огромные текстуры и звуки делают загрузку мучительной — сжимай ассеты.
Best practices
- Добавь все сцены в Build Settings и проверь, что меню под индексом 0.
- Перед релизом собери Development Build и протести: поведение билда иногда отличается от редактора.
- Заполни Player Settings: имя, иконку, компанию — это лицо твоей игры.
- Для WebGL сжимай текстуры и звук, для Android выбери целевую архитектуру и проверь ориентацию экрана.
Итоги: сборка превращает проект в самостоятельную программу под платформу (exe / WebGL / apk) через Build Settings. Добавь все сцены (индекс 0 грузится первым), настрой Player Settings, поставь модуль платформы и протести билд перед публикацией. Поздравляем — теперь твоя игра может жить за пределами редактора и в неё сыграют другие.
Что ещё проверить перед публикацией
Собрать билд — половина дела; вторая половина в том, чтобы он работал на чужих машинах, а не только на твоей. Слабые места всплывают именно в билде. WebGL-сборка не умеет писать файлы как настольная и медленнее с тяжёлыми ассетами — сжимай текстуры и звук, иначе страница будет грузиться минуту. Android требует подписи приложения и правильно выбранной целевой архитектуры, иначе магазин не примёт пакет. На любой платформе обязательно собери Development Build и пройди игру: поведение часто отличается от редактора — где-то выстреливает скорость загрузки, где-то путь к файлу. И не забудь про мелочи, которые формируют первое впечатление: иконка, имя продукта, экран загрузки. Игрок не видит твой код, он видит ярлык и первую секунду запуска — пусть они выглядят так, будто игру делали всерьёз.