reckfellENGINE

ProjectSettings

Хранит глобально доступные переменные.

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

Хранит глобально доступные переменные.

Хранит переменные, доступ к которым можно получить везде. ProjectSettings.GetSetting, ProjectSettings.SetSetting или ProjectSettings.HasSetting :: доступ к ним. project.reckfell также загружаются в ProjectSettings, сделав этот объект очень полезным для чтения опции настройки игр. При наименовании объектов проекта используйте полный путь к настройке, включая категорию. "application/config/name" Категория и наименования имущества можно увидеть в диалоге параметров проекта. Метки: Настройка проекта может быть отменена для конкретных платформ и конфигураций (отладка, выпуск, ...) с использованием знaчитeльные метки. Превышение: Любая настройка проекта может быть отменена путем создания файла по имени override.cfg в корневом каталоге проекта. Этот файл имеет тот же формат, что и project.reckfell, и может быть также написана с использованием ConfigFileЭто можно также использовать в экспортных проектах, помещая этот файл в тот же каталог, что и двоичный файл проекта. знaчитeльные метки Поэтому убедитесь, что также* переключите настройку с желаемыми метками параметров, если вы хотите, чтобы они перекрыли базовые настройки проекта на всех платформах и конфигурациях.

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

Свойства1

SingletonСвойство
# Singleton
C#
public static ProjectSettingsInstance Singleton { get; }

Методы22

AddPropertyInfovoid
# AddPropertyInfo
C#
public static void AddPropertyInfo(Reckfell.Collections.Dictionary hint);

Добавляет информацию о пользовательском свойстве к свойству. Словарь должен содержать:

  • "name": string (имя свойства)
  • "type": [int] (см. Variant.Type)
  • опционально "hint": string
C#
ProjectSettings.Singleton.Set("category/property_name", 0);

var propertyInfo = new Reckfell.Collections.Dictionary
{
    { "name", "category/propertyName" },
    { "type", (int)Variant.Type.Int },
    { "hint", (int)PropertyHint.Enum },
    { "hint_string", "one,two,three" },
};

ProjectSettings.AddPropertyInfo(propertyInfo);

Примечание: Установка "usage" для свойства не поддерживается. Для изменения флагов "usage", используйте ProjectSettings.SetAsBasic, ProjectSettings.SetRestartIfChanged и ProjectSettings.SetAsInternal.

Параметры
ИмяТипПо умолчанию
hintReckfell.Collections.Dictionary—
CheckChangedSettingsInGroupbool
# CheckChangedSettingsInGroup
C#
public static bool CheckChangedSettingsInGroup(string settingPrefix);

Проверяет, существуют ли какие-либо настройки с префиксом setting_prefix в наборе измененных настроек. См. также ProjectSettings.GetChangedSettings.

Параметры
ИмяТипПо умолчанию
settingPrefixstring—
Возвращает bool
Clearvoid
# Clear
C#
public static void Clear(string name);

Очищает всю конфигурацию (не рекомендуется, может что-то сломать).

Параметры
ИмяТипПо умолчанию
namestring—
GetChangedSettingsstring[]
# GetChangedSettings
C#
public static string[] GetChangedSettings();

Получает массив настроек, измененных с момента последнего сохранения. Обратите внимание, что внутренне changed_settings очищается после успешного сохранения, поэтому обычно наиболее подходящее место для использования этого метода — при обработке ProjectSettings.SettingsChanged.

Возвращает string[]
GetGlobalClassListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# GetGlobalClassList
C#
public static Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetGlobalClassList();

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

  • base — имя базового класса;
  • class — имя зарегистрированного глобального класса;
  • icon — путь к пользовательскому значку глобального класса, если он есть;
  • language — имя языка программирования, на котором написан глобальный класс;
  • path — путь к файлу, содержащему глобальный класс. Примечание: Пути к скрипту и значку являются локальными для файловой системы проекта, т. е. они начинаются с asset://.
Возвращает Reckfell.Collections.Array<Reckfell.Collections.Dictionary>
GetOrderint
# GetOrder
C#
public static int GetOrder(string name);

Возвращает порядок значения конфигурации (влияет при сохранении в файле конфигурации).

Параметры
ИмяТипПо умолчанию
namestring—
Возвращает int
GetSettingVariant
# GetSetting
C#
public static Variant GetSetting(string name, Variant defaultValue = default);

Читает базовое значение настройки; при отсутствии возвращает defaultValue, не создавая ключ. Не проверяет тип и не применяет feature overrides. Для них используйте GetSettingWithOverride.

Параметры
ИмяТипПо умолчанию
namestring—
defaultValueVariantdefault
name

Полный ключ настройки, например application/run/max_fps.

defaultValue

Возвращаемое значение для отсутствующего ключа; не заменяет уже существующее значение неправильного типа.

Возвращает Variant

Существующее значение либо defaultValue как Variant. Перед преобразованием проверьте VariantType, если тип данных не гарантирован.

GetSettingWithOverrideVariant
# GetSettingWithOverride
C#
public static Variant GetSettingWithOverride(StringName name);

Читает настройку с учётом активных feature tags. Для game/content_mode и game/content_mode.demo возвращает вариант demo при активной метке demo, иначе базовое значение. В отличие от GetSetting учитывает переопределение; пример не устанавливает приоритет нескольких активных суффиксов.

Параметры
ИмяТипПо умолчанию
nameStringName—
name

Имя базовой настройки без суффикса метки, например game/content_mode. Создайте базовую настройку до чтения.

Возвращает Variant

Значение активного переопределения либо базовое значение в Variant; приведите его к ожидаемому типу, например AsString() для строки.

GetSettingWithOverrideAndCustomFeatures2 перегрузки
# GetSettingWithOverrideAndCustomFeatures · 1/2
C#
public static Variant GetSettingWithOverrideAndCustomFeatures(StringName name, ReadOnlySpan<string> features);

Похоже ProjectSettings.GetSettingWithOverride, но применять метки функции вместо текущего OS - характеристики.

Параметры
ИмяТипПо умолчанию
nameStringName—
featuresReadOnlySpan<string>—
Возвращает Variant
# GetSettingWithOverrideAndCustomFeatures · 2/2
C#
public static Variant GetSettingWithOverrideAndCustomFeatures(StringName name, string[] features);

Похоже ProjectSettings.GetSettingWithOverride, но применять метки функции вместо текущего OS - характеристики.

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

Преобразует asset://, user:// и поддерживаемый uid:// в путь ОС; остальные строки оставляет без такого преобразования. Не создаёт папку и не извлекает ресурс из пакета. Для System.IO путь user:// сначала нужно глобализировать; импортированные ресурсы продолжайте загружать через ResourceLoader.

Параметры
ИмяТипПо умолчанию
pathstring—
Возвращает string
HasSettingbool
# HasSetting
C#
public static bool HasSetting(string name);

Проверяет наличие ключа настройки, а не соответствие его значения ожидаемому типу. Чтение отсутствующего ключа через GetSetting с резервным значением не создаёт ключ.

Параметры
ИмяТипПо умолчанию
namestring—
name

Полный ключ, например game/starting_lives.

Возвращает bool

true для существующего ключа; false для отсутствующего или удалённого значением Variant Nil.

LoadResourcePackbool
# LoadResourcePack
C#
public static bool LoadResourcePack(string pack, bool replaceFiles = true, int offset = 0);

Подключает PCK или ZIP к asset://; не создаёт экземпляры Entity и не загружает DLL в .NET. При совпадении обычных путей replaceFiles определяет приоритет, но записи удаления PCK применяются даже при false. Уже загруженные ресурсы не обновляются автоматически: обычный ResourceLoader.Load может вернуть старый объект из кэша. Подключайте обновления до первого обращения к их ресурсам. Свежий DirAccess может перечислять добавленные пути.

Параметры
ИмяТипПо умолчанию
packstring—
replaceFilesbooltrue
offsetint0
pack

Путь файла пакета: абсолютный, asset:// или user://. Не путь уровня внутри него. Успешное подключение не подтверждает наличие всех зависимостей и подлинность автора.

replaceFiles

По умолчанию true: более поздний пакет заменяет обычные совпадающие пути. При false существующие пути сохраняют приоритет, новые всё равно добавляются. Не защищает от записей удаления и не является песочницей.

offset

Смещение начала PCK в байтах; обычно 0. Для ZIP не поддерживается. Это не смещение отдельного ресурса внутри пакета.

Возвращает bool

true, если пакет распознан и подключён; false при отказе. Не сообщает Error и не проверяет загрузку каждого ресурса пакета.

LocalizePathstring
# LocalizePath
C#
public static string LocalizePath(string path);

Преобразует подходящий абсолютный путь внутри корня проекта в asset://. Абсолютный путь за пределами проекта обычно остаётся абсолютным. Не является общим преобразованием пути папки пользователя в user://; сохраняйте виртуальные пути слотов явно.

Параметры
ИмяТипПо умолчанию
pathstring—
Возвращает string
SaveError
# Save
C#
public static Error Save();

Сохраняет конфигурацию в файл project.reckfell. Примечание: Этот метод предназначен для использования плагинами редактора, поскольку измененные ProjectSettings нельзя загрузить обратно в работающее приложение. Если вы хотите изменить настройки проекта в экспортированных проектах, используйте ProjectSettings.SaveCustom для сохранения файла override.cfg.

Возвращает Error
SaveCustomError
# SaveCustom
C#
public static Error SaveCustom(string file);

Сохраняет текущую конфигурацию по указанному пути. Значения, равные исходным, пропускаются; метод не ограничен одним пользовательским ключом и не загружает файл обратно. Для предпочтений игрока обычно нужен отдельный ConfigFile в user://.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь с окончанием .reckfell или override.cfg для текста, либо .binary для двоичного формата. Произвольный .json не поддерживается; каталог должен быть доступен для записи.

Возвращает Error

Error.Ok при успешной записи; иначе код ошибки. Проверяйте результат перед сообщением об успешном сохранении.

SetAsBasicvoid
# SetAsBasic
C#
public static void SetAsBasic(string name, bool basic);

Определяет, считается ли указанная настройка базовой или расширенной. Базовые настройки всегда будут отображаться в настройках проекта. Расширенные настройки будут отображаться только в том случае, если пользователь включит опцию «Расширенные настройки».

Параметры
ИмяТипПо умолчанию
namestring—
basicbool—
SetAsInternalvoid
# SetAsInternal
C#
public static void SetAsInternal(string name, bool @internal);

Определяет, считается ли указанная настройка внутренней. Внутренняя настройка не будет отображаться в диалоговом окне «Параметры проекта». Это в основном полезно для дополнений, которым необходимо хранить собственные внутренние настройки, не предоставляя их напрямую пользователю.

Параметры
ИмяТипПо умолчанию
namestring—
internalbool—
SetInitialValuevoid
# SetInitialValue
C#
public static void SetInitialValue(string name, Variant value);

Задаёт исходное значение уже существующей настройки, не меняя текущее. При сохранении значение, равное исходному, пропускается. Если ключа нет, сначала создайте его через SetSetting.

Параметры
ИмяТипПо умолчанию
namestring—
valueVariant—
name

Ключ уже существующей настройки.

value

Исходное значение для сравнения при сохранении и восстановления свойства; это не присваивание текущего значения.

SetOrdervoid
# SetOrder
C#
public static void SetOrder(string name, int position);

Устанавливает порядок значения конфигурации (влияет при сохранении в файле конфигурации).

Параметры
ИмяТипПо умолчанию
namestring—
positionint—
SetRestartIfChangedvoid
# SetRestartIfChanged
C#
public static void SetRestartIfChanged(string name, bool restart);

Устанавливает, требуется ли перезапуск редактора для правильного вступления в силу настройки. Примечание: Это просто подсказка для отображения пользователю того, что редактор необходимо перезапустить для вступления изменений в силу. Включение ProjectSettings.SetRestartIfChanged не задерживает установку настройки при ее изменении.

Параметры
ИмяТипПо умолчанию
namestring—
restartbool—
SetSettingvoid
# SetSetting
C#
public static void SetSetting(string name, Variant value);

Устанавливает значение настройки в памяти; Variant Nil удаляет ключ. Сам не записывает файл и не гарантирует немедленного применения к работающей подсистеме. Например, для текущего лимита кадров меняйте Engine.MaxFps.

Параметры
ИмяТипПо умолчанию
namestring—
valueVariant—
name

Полный ключ изменяемой или создаваемой настройки.

value

Новое значение Variant. Передача default в этот параметр означает Nil и удаляет ключ, а не сбрасывает его к исходному значению.

Сигналы и события1

SettingsChangedСобытие
# SettingsChanged
C#
public static event Action SettingsChanged;

Выдается при изменении любой настройки, до одного раза за кадр процесса.

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

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

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

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