Решили: id новой семьи контента именуются relic.trash_archer, а не relic.trash.archer —
подсемейство кодируется подчёркиванием внутри имени, а не второй точкой.
Почему: владелец правила — ContentDomains.IsValidId: ровно одна точка, дальше только
[a-z0-9_]. Иерархия «домен.семья.имя» правилом не предусмотрена, и расширять его ради семи
болванок значило бы трогать формат, на котором стоят лок-ключи, аудио-ключи и сейвы. Подчёркивание
даёт ту же читаемость (relic.trash_* группируется сортировкой) за нулевую цену.
Грабли: три штуки, все вскрылись только полным прогоном EditMode, потому что до него всё выглядело рабочим.
- Невалидный id молчит до теста. Ассет создаётся, инспектор доволен, юнит собирается и бьёт —
ловит только
ContentValidationTests.AllContent_HasValidId. Проверять новый id надо сразу:ContentDomains.IsValidId(def.Id)изexecute_code. ContentDatabaseне сканирует папку. Реестр наполняется менюAlebardium/Data/Sync Content Database; без прогона новый контент есть на диске, но его нет для игры. Сторож —ContentValidationTests.ContentDatabase_ExistsAndComplete.- Переименование id тянет за собой лок-ключи. Они выводятся из id (
{id}.name), поэтому переезд — это перенести значения на новые ключи и убрать старые черезCollection.SharedData.RemoveKey, иначе в таблице копятся сироты, которых не видит ни один тест.
Владелец правды: ContentDomains.IsValidId (формат), ContentDatabase.asset (реестр),
тесты ContentValidationTests.