Решили: облачная выкладка обязана давать тот же билд, что локальная. Для этого: банки FMOD
(FMOD Project/Build/) уезжают В РЕПОЗИТОРИЙ вопреки правилу [Bb]uild/, а steam-deploy.yml
дописывает дефайн GM_DEVTOOLS в ProjectSettings перед сборкой — но только на запуск КНОПКОЙ,
не по тегу.
Почему: две дороги выкладки заведены как страховка друг другу (локальная быстрая, облачная — из чистого клона), и вся их ценность держится на том, что они собирают одно и то же. На прогоне вдвоём 08.08.2026 оказалось, что не собирают: облачный билд уехал в Steam без звука вообще и без дев-консоли.
Дефайн ставит наш PlayerBuilder, которого облачная дорога не зовёт — она идёт через
game-ci/unity-builder штатным методом. По тегу дефайна нет намеренно: тег значит релиз, и консоль
в нём по-прежнему не открывается ничем.
Грабли:
Звук. Цепочка из четырёх звеньев, где ни одно не выглядит виноватым. Корневой .gitignore
ловит FMOD Project/Build/ правилом [Bb]uild/ — той же граблей, из-за которой папка
EditorTools/Player называется не Build. В чистом клоне источника банков нет, кэш событий
плагина пуст, а дальше FMOD сам выносит в корзину закоммиченные банки из StreamingAssets: он
считает их устаревшими, опознавая свои по метке FMOD в .meta (EventManager.cs, «Clean out any
stale .bank files»). Локально папка на диске есть, поэтому звук был, и разницы никто не видел.
Мораль шире одной папки: закоммиченный артефакт не спасает, если инструмент считает себя его владельцем. Банки лежали в git и всё равно не доехали.
Дефайн. Замена по ключу Standalone: в ProjectSettings.asset не годится: он встречается
трижды, и первым идёт bundle id приложения. Правка адресная — только внутри блока
scriptingDefineSymbols.
Сказано: «Очень неожиданно (мб другая сессия сломала?) но у меня не работают F1, F2, F3 и тд» и «Звука в игре НЕ БЫЛО ВООБЩЕ. Хм…» (08.08.2026, сессия eab27015). Оба симптома читались как поломка проекта — первый прямо назван чужой сессией; ни один не читался как «билд собран другой дорогой».
Не проверено: починка обоих пунктов подтверждается только следующей облачной сборкой — ни тест, ни компиляция про содержимое плеера не знают.
Владелец правды: .gitignore (исключение с объяснением), .github/workflows/steam-deploy.yml
(шаг «Dev tools define»), PlayerBuilder.DevToolsDefine.