reckfellENGINE

Engine

Предоставляет доступ к свойствам движка.

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

Предоставляет доступ к свойствам движка.

Синглтон Engine позволяет вам запрашивать и изменять параметры времени выполнения проекта, такие как количество кадров в секунду, масштаб времени и другие. Он также хранит информацию о текущей сборке Reckfell, например, текущую версию.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Свойства8

MaxFpsСвойство
# MaxFps
C#
public static int MaxFps { get; set; }

Текущее ограничение частоты отрисовки. 0 снимает это ограничение, но не отменяет V-Sync и не гарантирует достигнутый FPS. Изменение свойства не переписывает application/run/max_fps; запись этой настройки через SetSetting также не меняет текущее свойство.

MaxPhysicsStepsPerFrameСвойство
# MaxPhysicsStepsPerFrame
C#
public static int MaxPhysicsStepsPerFrame { get; set; }

Максимальное количество шагов физики, которые могут быть смоделированы в каждом отрендеренном кадре. Примечание: Значение по умолчанию настроено так, чтобы не допустить, чтобы дорогостоящие физические симуляции бесконечно запускали еще более дорогостоящие симуляции. Однако игра будет выглядеть замедленной, если FPS рендеринга меньше, чем 1 / max_physics_steps_per_frame от Engine.PhysicsTicksPerSecond. Это происходит, даже если delta постоянно используется в физических расчетах. Чтобы избежать этого, увеличьте Engine.MaxPhysicsStepsPerFrame, если вы увеличили Engine.PhysicsTicksPerSecond значительно выше его значения по умолчанию.

PhysicsJitterFixСвойство
# PhysicsJitterFix
C#
public static double PhysicsJitterFix { get; set; }

Насколько физические тики синхронизированы с реальным временем. Если 0 или меньше, тики полностью синхронизированы. Более высокие значения заставляют игровые часы больше отклоняться от реальных часов, но они сглаживают колебания частоты кадров. Примечание: Значение по умолчанию 0.5 должно быть достаточно хорошим для большинства случаев; значения выше 2 могут привести к тому, что игра будет реагировать на пропущенные кадры с заметной задержкой и не рекомендуются. Примечание: При использовании пользовательского решения для интерполяции физики или в сетевой игре рекомендуется отключить исправление физического дрожания, установив это свойство в 0.

PhysicsTicksPerSecondСвойство
# PhysicsTicksPerSecond
C#
public static int PhysicsTicksPerSecond { get; set; }

Частота физических шагов. Кадр и шаг не обязаны соответствовать один к одному; увеличение частоты требует замера CPU и не исправляет ошибки фильтров, геометрии или числовой точности.

PrintErrorMessagesСвойство
# PrintErrorMessages
C#
public static bool PrintErrorMessages { get; set; }

Если false, прекращается вывод сообщений об ошибках и предупреждений на консоль и в журнал вывода редактора. Это можно использовать для скрытия сообщений об ошибках и предупреждений во время выполнения набора модульных тестов. Это свойство эквивалентно настройке проекта ProjectSettings.application/run/disable_stderr. Примечание: Это свойство не влияет на вкладку «Ошибки» редактора при запуске проекта из редактора. Предупреждение: Если установлено значение false в любом месте проекта, важные сообщения об ошибках могут быть скрыты, даже если они выдаются другими скриптами. В скрипте @tool это также повлияет на сам редактор. Не сообщайте об ошибках, не убедившись, что сообщения об ошибках включены (как по умолчанию).

PrintToStdOutСвойство
# PrintToStdOut
C#
public static bool PrintToStdOut { get; set; }

Если false, прекращает вывод сообщений (например, с помощью ReckfellApi.Print) на консоль, в файлы журнала и в журнал вывода редактора. Это свойство эквивалентно настройке проекта ProjectSettings.application/run/disable_stdout. Примечание: Это не прекращает вывод ошибок или предупреждений, создаваемых скриптами, на консоль или в файлы журнала, для получения более подробной информации см. Engine.PrintErrorMessages.

SingletonСвойство
# Singleton
C#
public static EngineInstance Singleton { get; }
TimeScaleСвойство
# TimeScale
C#
public static double TimeScale { get; set; }

Масштаб игрового времени. Не является измерением реального FPS и не заменяет паузу/ProcessMode. Проверяйте зависящие от времени силы, таймеры и ввод в нужном сценарии.

Методы41

CaptureScriptBacktracesReckfell.Collections.Array<ScriptBacktrace>
# CaptureScriptBacktraces
C#
public static Reckfell.Collections.Array<ScriptBacktrace> CaptureScriptBacktraces(bool includeVariables = false);

Похищение и возврат отпечатков со всех зарегистрированных языков скрипта. По умолчанию, возвращенный ScriptBacktrace будет содержать только стоп-кадры в композициях редактора и отладке. Для того, чтобы они могли также создаваться для выпуска, вы должны обеспечить возможность ProjectSettings.debug/settings/csharp/always_track_call_stacks. Если include_variables это true, брошюра будет также включать имена и значения любых глобальных переменных (например, автозагрузить одинтоны) в момент ввода, а также местные переменные и переменные членов класса в каждой раме. Однако это будет уважаться только при запуске игры с отладчиком, например, при запуске игры из редактора. Для того чтобы она могла экспортировать также, вы должны обеспечить возможность ProjectSettings.debug/settings/csharp/always_track_local_variables. Предупреждение: Когда include_variables это true, любые регистрируемые переменные могут потенциально (например, с помощью свечей C#) быть их фактическими значениями, включая любые ссылки на объекты. ScriptBacktrace , предотвратит сбыт этих предметов, так что обычно рекомендуется этого не делать.

Параметры
ИмяТипПо умолчанию
includeVariablesboolfalse
Возвращает Reckfell.Collections.Array<ScriptBacktrace>
GetArchitectureNamestring
# GetArchitectureName
C#
public static string GetArchitectureName();

Возвращает имя архитектуры ЦП, для которой был собран двоичный файл Reckfell. Возможные возвращаемые значения включают "x86_64", "x86_32", "arm64", "arm32", "rv64", "ppc64", "loongarch64", "wasm64" и "wasm32". Чтобы определить, является ли текущая сборка 64-разрядной, или тип архитектуры, не используйте имя архитектуры. Вместо этого используйте OS.HasFeature для проверки тега функции "64" или тегов, таких как "x86" или "arm". Более подробную информацию см. в документации Теги функций. Примечание: Этот метод не возвращает имя архитектуры ЦП системы (как OS.GetProcessorName). Например, при запуске двоичного файла Reckfell x86_32 в системе x86_64 возвращаемое значение по-прежнему будет "x86_32".

Возвращает string
GetAuthorInfoReckfell.Collections.Dictionary
# GetAuthorInfo
C#
public static Reckfell.Collections.Dictionary GetAuthorInfo();

Возвращает информацию о авторах двигателей в качестве Reckfell.Collections.Dictionary, где каждая позиция является a Reckfell.Collections.Array струн с именами известных вкладчиков в Reckfell Engine: lead_developers, founders, project_managers, и developers.

Возвращает Reckfell.Collections.Dictionary
GetCopyrightInfoReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# GetCopyrightInfo
C#
public static Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetCopyrightInfo();

Возвращает Reckfell.Collections.Array словарей с информацией об авторских правах для каждого компонента исходного кода Reckfell. Каждый Reckfell.Collections.Dictionary содержит идентификатор name и массив parts словарей. Он подробно описывает компонент с помощью следующих записей:

Возвращает Reckfell.Collections.Array<Reckfell.Collections.Dictionary>
GetDonorInfoReckfell.Collections.Dictionary
# GetDonorInfo
C#
public static Reckfell.Collections.Dictionary GetDonorInfo();

Возвращается a Reckfell.Collections.Dictionary Каждая позиция представляет собой Reckfell.Collections.Array строки: {platinum_sponsors, gold_sponsors, silver_sponsors, bronze_sponsors, mini_sponsors, gold_donors, silver_donors, bronze_donors}

Возвращает Reckfell.Collections.Dictionary
GetFramesDrawnint
# GetFramesDrawn
C#
public static int GetFramesDrawn();

Возвращает общее количество кадров, отрисованных с момента запуска движка. Примечание: На платформах headless или если рендеринг отключен с помощью --disable-render-loop через командную строку, этот метод всегда возвращает 0. См. также Engine.GetProcessFrames.

Возвращает int
GetFramesPerSeconddouble
# GetFramesPerSecond
C#
public static double GetFramesPerSecond();

Возвращает среднее количество кадров, отображаемых каждую секунду (FPS), также известное как частота кадров.

Возвращает double
GetLicenseInfoReckfell.Collections.Dictionary
# GetLicenseInfo
C#
public static Reckfell.Collections.Dictionary GetLicenseInfo();

Возвращает Reckfell.Collections.Dictionary лицензий, используемых Reckfell, и включенных сторонних компонентов. Каждая запись представляет собой имя лицензии (например, "Expat(https://en.wikipedia.org/wiki/MIT_License#Ambiguity_and_variants)") и связанный с ней текст.

Возвращает Reckfell.Collections.Dictionary
GetLicenseTextstring
# GetLicenseText
C#
public static string GetLicenseText();

Возвращает полный текст лицензии Reckfell.

Возвращает string
GetMainLoopMainLoop
# GetMainLoop
C#
public static MainLoop GetMainLoop();

Возвращает экземпляр MainLoop. Обычно это основной EntityTree и он такой же, как Entity.GetTree. Примечание: Тип, созданный как основной цикл, может быть изменен с помощью ProjectSettings.application/run/main_loop_type.

Возвращает MainLoop
GetMaxFpsint
# GetMaxFps
C#
public static int GetMaxFps();
Возвращает int
GetMaxPhysicsStepsPerFrameint
# GetMaxPhysicsStepsPerFrame
C#
public static int GetMaxPhysicsStepsPerFrame();
Возвращает int
GetPhysicsFramesulong
# GetPhysicsFrames
C#
public static ulong GetPhysicsFrames();

Возвращает общее количество кадров, пройденных с момента запуска движка. Это число увеличивается каждый физический кадр. См. также Engine.GetProcessFrames. Этот метод можно использовать для более редкого запуска дорогостоящей логики без использования Timer:

C#
public override void _PhysicsProcess(double delta)
{
    base._PhysicsProcess(delta);

    if (Engine.GetPhysicsFrames() % 2 == 0)
    {
        // Run expensive logic only once every 2 physics frames here.
    }
}
Возвращает ulong
GetPhysicsInterpolationFractiondouble
# GetPhysicsInterpolationFraction
C#
public static double GetPhysicsInterpolationFraction();

Доля между физическими шагами для формирования промежуточной картинки. Используется с сохранёнными предыдущим и текущим состояниями; сама по себе не увеличивает точность физики и не является измерением задержки ввода.

Возвращает double
GetPhysicsJitterFixdouble
# GetPhysicsJitterFix
C#
public static double GetPhysicsJitterFix();
Возвращает double
GetPhysicsTicksPerSecondint
# GetPhysicsTicksPerSecond
C#
public static int GetPhysicsTicksPerSecond();
Возвращает int
GetProcessFramesulong
# GetProcessFrames
C#
public static ulong GetProcessFrames();

Возвращает общее количество кадров, пройденных с момента запуска движка. Это число увеличивается каждый кадр процесса, независимо от того, включен ли цикл рендеринга. См. также Engine.GetFramesDrawn и Engine.GetPhysicsFrames. Этот метод можно использовать для менее частого запуска дорогостоящей логики без использования Timer:

C#
public override void _Process(double delta)
{
    base._Process(delta);

    if (Engine.GetProcessFrames() % 5 == 0)
    {
        // Run expensive logic only once every 5 process (render) frames here.
    }
}
Возвращает ulong
GetScriptLanguageScriptLanguage
# GetScriptLanguage
C#
public static ScriptLanguage GetScriptLanguage(int index);

Возвращает экземпляр ScriptLanguage с заданным index.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает ScriptLanguage
GetScriptLanguageCountint
# GetScriptLanguageCount
C#
public static int GetScriptLanguageCount();

Возвращает количество доступных языков для скриптов. Используйте с Engine.GetScriptLanguage.

Возвращает int
GetSingletonReckfellObject
# GetSingleton
C#
public static ReckfellObject GetSingleton(StringName name);

Возвращает глобальный синглтон с заданным name или null, если он не существует. Часто используется для плагинов. См. также Engine.HasSingleton и Engine.GetSingletonList. Примечание: Глобальные синглтоны — это не то же самое, что автоматически загружаемые узлы, которые настраиваются в настройках проекта.

Параметры
ИмяТипПо умолчанию
nameStringName—
Возвращает ReckfellObject
GetSingletonListstring[]
# GetSingletonList
C#
public static string[] GetSingletonList();

Возвращает список имен всех доступных глобальных синглтонов. См. также Engine.GetSingleton.

Возвращает string[]
GetTimeScaledouble
# GetTimeScale
C#
public static double GetTimeScale();
Возвращает double
GetVersionInfoReckfell.Collections.Dictionary
# GetVersionInfo
C#
public static Reckfell.Collections.Dictionary GetVersionInfo();

Возвращает информацию о текущей версии двигателя в качестве Reckfell.Collections.Dictionary с следующими позициями:

  • major - Номер основной версии в качестве int;
  • minor - Незначительный номер версии в качестве int;
  • patch - Номер каталога как номер int;
  • hex - Полная версия, закодированная как гексадековая int с одним байтом (2 гекс-значения) на число (см. пример ниже);
  • status - статус (такий, как "бета", "rc1", "rc2", "стабильный" и т.д.) в качестве String;
  • build - Строить название (например, "таможенное строительство") в качестве String;
  • hash - Полная хэш-хэш, как String;
  • timestamp - Держит дату вступления в силу даты UNIX в секундах как intили 0 если отсутствует;
  • version и string - Общественность major.minor.patch Версия выпуска, включая нулевой патч. Конфигурация построения и идентификатор Git являются отдельными диагностическими полями. :: hex Значение кодируется следующим образом: слева направо: один байт для главного, один байт для несовершеннолетнего, один байт для патча. 0x03010C. Примечание: :: hex значение по-прежнему a [int] внутри, и печатание будет давать десятичное представление, что не является особенно значимым.
C#
if ((int)Engine.GetVersionInfo()["hex"] >= 0x040100)
{
    // Do things specific to version 4.1 or later.
}
else
{
    // Do things specific to versions before 4.1.
}
Возвращает Reckfell.Collections.Dictionary
GetWriteMoviePathstring
# GetWriteMoviePath
C#
public static string GetWriteMoviePath();

Возвращает путь к выходному файлу MovieWriter или пустую строку, если движок не был запущен в режиме Создатель кино. Путь по умолчанию можно изменить в ProjectSettings.editor/movie_writer/movie_file.

Возвращает string
HasSingletonbool
# HasSingleton
C#
public static bool HasSingleton(StringName name);

Возвращает true, если синглтон с указанным name существует в глобальной области видимости. См. также Engine.GetSingleton.

C#
ReckfellApi.Print(Engine.HasSingleton("OS"));          // Prints True
ReckfellApi.Print(Engine.HasSingleton("Engine"));      // Prints True
ReckfellApi.Print(Engine.HasSingleton("AudioServer")); // Prints True
ReckfellApi.Print(Engine.HasSingleton("Unknown"));     // Prints False

Примечание: Глобальные синглтоны — это не то же самое, что автоматически загружаемые узлы, которые настраиваются в настройках проекта.

Параметры
ИмяТипПо умолчанию
nameStringName—
Возвращает bool
IsEditorHintbool
# IsEditorHint
C#
public static bool IsEditorHint();

Возвращает true, если скрипт в данный момент выполняется внутри редактора, в противном случае возвращает false. Это полезно для скриптов @tool для условной отрисовки помощников редактора или предотвращения случайного запуска «игрового» кода, который может повлиять на состояние сцены в редакторе:

C#
if (Engine.IsEditorHint())
    DrawGizmos();
else
    SimulatePhysics();

См. Запуск кода в редакторе в документации для получения дополнительной информации. Примечание: Чтобы определить, запущен ли скрипт в редакторе build (например, при нажатии OS.HasFeature с аргументом "editor". OS.has_feature("editor") оценивается как true как при запуске скрипта в редакторе, так и при запуске проекта из редактора, но возвращает false при запуске из экспортированного проекта.

Возвращает bool
IsEmbeddedInEditorbool
# IsEmbeddedInEditor
C#
public static bool IsEmbeddedInEditor();

Возвращает true, если движок запущен встроенным в редактор. Это полезно для предотвращения попыток обновления режима окна или флагов окна, которые не поддерживаются при запуске проекта, встроенного в редактор.

Возвращает bool
IsInPhysicsFramebool
# IsInPhysicsFrame
C#
public static bool IsInPhysicsFrame();

Возвращает true, если движок находится внутри фиксированного шага физического процесса основного цикла.

Возвращает bool
IsPrintingErrorMessagesbool
# IsPrintingErrorMessages
C#
public static bool IsPrintingErrorMessages();
Возвращает bool
IsPrintingToStdOutbool
# IsPrintingToStdOut
C#
public static bool IsPrintingToStdOut();
Возвращает bool
RegisterScriptLanguageError
# RegisterScriptLanguage
C#
public static Error RegisterScriptLanguage(ScriptLanguage language);

Регистрирует экземпляр ScriptLanguage, который будет доступен с ScriptServer. Возвращает:

  • OK об успехе;
  • ERR_UNAVAILABLE если ScriptServer достиг лимита и не может зарегистрировать ни одного нового языка;
  • ERR_ALREADY_EXISTS если ScriptServer уже содержит язык с похожим расширением/названием/типом.
Параметры
ИмяТипПо умолчанию
languageScriptLanguage—
Возвращает Error
RegisterSingletonvoid
# RegisterSingleton
C#
public static void RegisterSingleton(StringName name, ReckfellObject instance);

Регистрирует заданный ReckfellObject instance как синглтон, доступный глобально под name. Полезно для плагинов.

Параметры
ИмяТипПо умолчанию
nameStringName—
instanceReckfellObject—
SetMaxFpsvoid
# SetMaxFps
C#
public static void SetMaxFps(int maxFps);
Параметры
ИмяТипПо умолчанию
maxFpsint—
SetMaxPhysicsStepsPerFramevoid
# SetMaxPhysicsStepsPerFrame
C#
public static void SetMaxPhysicsStepsPerFrame(int maxPhysicsSteps);
Параметры
ИмяТипПо умолчанию
maxPhysicsStepsint—
SetPhysicsJitterFixvoid
# SetPhysicsJitterFix
C#
public static void SetPhysicsJitterFix(double physicsJitterFix);
Параметры
ИмяТипПо умолчанию
physicsJitterFixdouble—
SetPhysicsTicksPerSecondvoid
# SetPhysicsTicksPerSecond
C#
public static void SetPhysicsTicksPerSecond(int physicsTicksPerSecond);
Параметры
ИмяТипПо умолчанию
physicsTicksPerSecondint—
SetPrintErrorMessagesvoid
# SetPrintErrorMessages
C#
public static void SetPrintErrorMessages(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetPrintToStdOutvoid
# SetPrintToStdOut
C#
public static void SetPrintToStdOut(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetTimeScalevoid
# SetTimeScale
C#
public static void SetTimeScale(double timeScale);
Параметры
ИмяТипПо умолчанию
timeScaledouble—
UnregisterScriptLanguageError
# UnregisterScriptLanguage
C#
public static Error UnregisterScriptLanguage(ScriptLanguage language);

Отменяет регистрацию экземпляра ScriptLanguage из ScriptServer. Возвращает:

  • OK при успешном выполнении;
  • ERR_DOES_NOT_EXIST, если язык не зарегистрирован в ScriptServer.
Параметры
ИмяТипПо умолчанию
languageScriptLanguage—
Возвращает Error
UnregisterSingletonvoid
# UnregisterSingleton
C#
public static void UnregisterSingleton(StringName name);

Удаляет синглтон, зарегистрированный под name. Объект синглтон не освобожден. Работает только с определенными пользователем синглтонами, зарегистрированными с помощью Engine.RegisterSingleton.

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

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

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

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