Решили: Трек К закрыт — QFSW Quantum Console удалён из проекта (583 файла, пять объектов в
CoreScene, ссылка в asmdef), все 42 дев-команды переехали в свой реестр. Тогл — дискретное событие
IInputService.DevConsoleToggleRequested на ~, вне контекст-карт и без гейта по
GameplaySuppressed.
Почему: мотивы трека были записаны заранее (последний внешний писатель GameplaySuppressed
умирает, один стиль, дев-команды поедут через тот же слой интентов в коопе, минус зависимость). Из
нового: гейт по глушению на клавише консоли запирал бы её изнутри — открытая консоль сама держит
InputSuppressSource.DevConsole, и её же клавиша перестала бы работать. Та же причина, по которой без
гейта живёт Escape.
Грабли:
Startмодуля зовётся снова после domain reload, а реестр на дубль имени бросает. ОтсюдаDevCommandSet: модуль регистрирует команды в свой набор и снимает их однимDispose. Держать список имён руками означало бы разойтись на первой же новой команде.- Компоненты в сцене ищутся по ТИПУ, а не по имени.
grep "QuantumConsole"по.unityдаёт ноль — в YAML компонент лежит по guid скрипта. Проверка «есть ли пакет в сцене» делается переборомFindObjectsByType<MonoBehaviour>с фильтром по неймспейсу (нашлось пять объектов, которые grep не видел). execute_codeблокируетAssetDatabase.DeleteAssetсвоим safety-фильтром; для удаления пакета нуженsafety_checks: false. И удалять надо после снятия ссылки в asmdef, иначе первый же рефреш даёт красную компиляцию.- Сразу после удаления пакета
compile-checkврёт красным («не найденFMODUnity.ref.dll»): редактор в этот момент пересобираетLibrary/Bee, и артефакты недоступны. Не чинить — дождаться окончания и повторить. - Пауза сима на время консоли — не свойство консоли, а свойство дев-модуля. Она переехала на
событие
MenuRouter.DevConsoleVisibilityChanged, потому что паузу консоль одалживает у владельца (расстановка ставит её сама), и снимать за него нельзя — это уже стреляло у QFSW-версии.
Владелец правды: Assets/_Project/Scripts/Core/DevConsole/ (реестр, набор, аргументы, лог),
Scripts/UI/DevConsole/DevConsoleScreen.cs, MenuRouter.ToggleDevConsole,
Scripts/Game/Input/InputService.cs (клавиша), регистрация команд —
Scripts/DevTools/GuildmasterCommands.RegisterCommands плюс Register в трёх статических наборах;
тесты DevConsoleRegistryTests.