reckfellENGINE

C#: имена и типы на границе API

Прямой вызов, MethodName/PropertyName, массивы .NET и точные C#-сигнатуры.

На этой странице

Начать с C#-объявления

Справочник показывает сигнатуру установленного SDK. Именно она определяет имя, типы, порядок аргументов и возвращаемое значение. Динамический вызов не делает допустимой произвольную функцию C# или неподдерживаемый тип данных.

ЗадачаПравило
Вызвать свой C#-методboundary.Add(3) — обычная типизированная операция
Вызвать через движковый CallИспользовать ScriptBoundary.MethodName.Add и Variant-совместимые аргументы
Обратиться к свойству через Get/SetИспользовать соответствующий PropertyName
Обработать упакованный числовой массивСледовать сигнатуре, например int[].Length
Применить сигнал с возвращаемыми даннымиСначала проверить сигнатуру и типы аргументов, затем EmitSignal/ToSignal
ScriptBoundary.cs
C#
using Reckfell;

public partial class ScriptBoundary : Entity
{
    public int Count { get; private set; }

    public bool Add(int amount)
    {
        if (amount <= 0 || Count > int.MaxValue - amount) return false;
        Count += amount;
        return true;
    }

    public bool ShowOnChild(string text)
    {
        Label? label = GetEntityOrNull<Label>("Status");
        if (!ReckfellObject.IsInstanceValid(label)) return false;
        label!.Text = text;
        return true;
    }
}

В стенде обычный Add(2), затем Call(ScriptBoundary.MethodName.Add, 3) дают Count = 5. HasMethod("Add") — true, HasMethod("add") — false. Имена собственных C#-методов чувствительны к регистру. У встроенных методов нативное строковое имя может отличаться от C#-имени: используйте cache соответствующего класса, а не общую замену snake_case на PascalCase внутри строк.

Где нет автоматического преобразования модели

Типы .NET и движковые контейнеры не взаимозаменяемы по одному имени. Dictionary из System.Collections.Generic удобен для локального расчёта; Export и Variant требуют поддерживаемого представления. InventoryLedger.Snapshot делает эту границу явной.

Variant.Int хранит 64-битное целое, даже когда исходный C#-тип — int. Не сужайте входные данные до проверки диапазона. C#-структуры вроде Vector2 передаются как значения: правку копии свойства нужно присвоить обратно. Поведение обратных преобразований с масштабом описано в математике.

Если Call/Get/Set неожиданно не работают, проверьте успешную сборку, прикреплённый экземпляр скрипта, cache имени и фактический VariantType. Для известных типов предпочитайте прямой C#-доступ: ошибки тогда выявляет компилятор, а не только запущенный проект.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.