RF0003: Два скриптовых класса на одном пути
Два класса с одним коротким именем соответствуют одному файлу. Разные пространства имён не делают путь уникальным.
RF0003 — включённая по умолчанию ошибка сборки: разные наследники движка претендуют на один путь файла скрипта. Разные пространства имён C# не создают разные пути ресурсов.
Воспроизвести
Сохраните полный ошибочный пример как Item.cs:
using Reckfell;
namespace TeamA { public partial class Item : Entity { } }
namespace TeamB { public partial class Item : Entity { } }Разделить пути скриптов
Переместите классы в разные файлы. Короткие имена можно оставить одинаковыми, если пространства имён и пути ресурсов различаются. Сохраните как TeamA/Item.cs:
using Reckfell;
namespace TeamA;
public partial class Item : Entity
{
[Export] public int Value { get; set; } = 11;
}Второй файл сохраните как TeamB/Item.cs:
using Reckfell;
namespace TeamB;
public partial class Item : Entity
{
[Export] public int Value { get; set; } = 22;
}Обновите ссылки уровня или префаба на нужный путь. Проверка в движке загружает оба скрипта по отдельным путям: первый возвращает Value=11, второй — Value=22.
Отличать соседние ошибки
Правило не запрещает любые вспомогательные типы в одном файле C#. Генератор пути связывает класс движка верхнего уровня с совпадающим именем файла; два разных класса, соответствующих Item.cs, не могут владеть одним путём. Смена только пространства имён сохраняет конфликт. Добавление partial исправляет RF0001, а не столкновение путей.
Два объявления одного имени в одном пространстве имён могут вместо этого дать обычные ошибки C# о дублирующемся типе или членах. Исправьте и эти ошибки. Не подавляйте RF0003 и не отключайте генератор пути: это не создаёт уникальный загружаемый скрипт.
Установленный анализатор отклонил ошибочный файл; движок загрузил оба исправленных пути с разными экспортируемыми значениями. Автоматический перенос ссылок, обобщённые типы скриптов, перемещения средствами IDE и экспорт не проверялись.