RF0002: Нужен partial у внешнего класса
Вложенный скрипт уже partial, но его внешний класс не разрешает генерацию вложенного объявления.
RF0002 — включённая по умолчанию ошибка сборки: у класса, содержащего вложенный наследник движка, нет partial. Одного partial у внутреннего наследника Entity недостаточно: генерации нужно повторно открыть внешний класс.
Воспроизвести
Сохраните как Host.cs:
using Reckfell;
public class Host
{
public partial class InnerEntity : Entity
{
[Export] public int Value { get; set; } = 7;
}
}Исправить
Добавьте partial у Host и оставьте его у InnerEntity:
using Reckfell;
public partial class Host
{
public partial class InnerEntity : Entity
{
[Export] public int Value { get; set; } = 7;
}
}Если внешних классов несколько, проверьте каждый класс-контейнер, указанный диагностикой. Не добавляйте partial к пространству имён: это не класс. Если partial отсутствует у самого внутреннего класса, исправьте также RF0001.
Что даёт исправление
Проверка в движке создаёт Host.InnerEntity из C#, добавляет его в дерево Entity, читает Value через Get и меняет через Set. Это подтверждает привязку исправленного вложенного класса, а не самостоятельный путь скрипта внутреннего типа.
Для скрипта, который нужно прикреплять к Entity по пути файла, выбирайте класс верхнего уровня с соответствующим именем файла. Исправление этой ошибки не делает любой вложенный вспомогательный тип самостоятельно прикрепляемым в редакторе.
Не подавляйте диагностику: контейнер входит в объявление, расширяемое генератором. Сопутствующая ошибка C# о partial может быть следствием; сначала исправьте объявление RF0002, затем разбирайте оставшиеся ошибки.
Установленный анализатор отклонил ошибочный пример; получение и изменение свойства исправленного вложенного класса выполнены в движке. Действия IDE, все сочетания вложенных struct/record/обобщений и экспорт не проверялись.