ProjectSettings
Хранит глобально доступные переменные.
Хранит глобально доступные переменные.
Хранит переменные, доступ к которым можно получить везде. 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Свойство
public static ProjectSettingsInstance Singleton { get; }Методы22
AddPropertyInfovoid
public static void AddPropertyInfo(Reckfell.Collections.Dictionary hint);Добавляет информацию о пользовательском свойстве к свойству. Словарь должен содержать:
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.
| Имя | Тип | По умолчанию |
|---|---|---|
hint | Reckfell.Collections.Dictionary | — |
CheckChangedSettingsInGroupbool
public static bool CheckChangedSettingsInGroup(string settingPrefix);Проверяет, существуют ли какие-либо настройки с префиксом setting_prefix в наборе измененных настроек. См. также ProjectSettings.GetChangedSettings.
| Имя | Тип | По умолчанию |
|---|---|---|
settingPrefix | string | — |
boolClearvoid
public static void Clear(string name);Очищает всю конфигурацию (не рекомендуется, может что-то сломать).
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
GetChangedSettingsstring[]
public static string[] GetChangedSettings();Получает массив настроек, измененных с момента последнего сохранения. Обратите внимание, что внутренне changed_settings очищается после успешного сохранения, поэтому обычно наиболее подходящее место для использования этого метода — при обработке ProjectSettings.SettingsChanged.
string[]GetGlobalClassListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
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
public static int GetOrder(string name);Возвращает порядок значения конфигурации (влияет при сохранении в файле конфигурации).
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
intGetSettingVariant
public static Variant GetSetting(string name, Variant defaultValue = default);Читает базовое значение настройки; при отсутствии возвращает defaultValue, не создавая ключ. Не проверяет тип и не применяет feature overrides. Для них используйте GetSettingWithOverride.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
defaultValue | Variant | default |
nameПолный ключ настройки, например application/run/max_fps.
defaultValueВозвращаемое значение для отсутствующего ключа; не заменяет уже существующее значение неправильного типа.
VariantСуществующее значение либо defaultValue как Variant. Перед преобразованием проверьте VariantType, если тип данных не гарантирован.
GetSettingWithOverrideVariant
public static Variant GetSettingWithOverride(StringName name);Читает настройку с учётом активных feature tags. Для game/content_mode и game/content_mode.demo возвращает вариант demo при активной метке demo, иначе базовое значение. В отличие от GetSetting учитывает переопределение; пример не устанавливает приоритет нескольких активных суффиксов.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
nameИмя базовой настройки без суффикса метки, например game/content_mode. Создайте базовую настройку до чтения.
VariantЗначение активного переопределения либо базовое значение в Variant; приведите его к ожидаемому типу, например AsString() для строки.
GetSettingWithOverrideAndCustomFeatures2 перегрузки
public static Variant GetSettingWithOverrideAndCustomFeatures(StringName name, ReadOnlySpan<string> features);Похоже ProjectSettings.GetSettingWithOverride, но применять метки функции вместо текущего OS - характеристики.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
features | ReadOnlySpan<string> | — |
Variantpublic static Variant GetSettingWithOverrideAndCustomFeatures(StringName name, string[] features);Похоже ProjectSettings.GetSettingWithOverride, но применять метки функции вместо текущего OS - характеристики.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
features | string[] | — |
VariantGlobalizePathstring
public static string GlobalizePath(string path);Преобразует asset://, user:// и поддерживаемый uid:// в путь ОС; остальные строки оставляет без такого преобразования. Не создаёт папку и не извлекает ресурс из пакета. Для System.IO путь user:// сначала нужно глобализировать; импортированные ресурсы продолжайте загружать через ResourceLoader.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
stringHasSettingbool
public static bool HasSetting(string name);Проверяет наличие ключа настройки, а не соответствие его значения ожидаемому типу. Чтение отсутствующего ключа через GetSetting с резервным значением не создаёт ключ.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
nameПолный ключ, например game/starting_lives.
booltrue для существующего ключа; false для отсутствующего или удалённого значением Variant Nil.
LoadResourcePackbool
public static bool LoadResourcePack(string pack, bool replaceFiles = true, int offset = 0);Подключает PCK или ZIP к asset://; не создаёт экземпляры Entity и не загружает DLL в .NET. При совпадении обычных путей replaceFiles определяет приоритет, но записи удаления PCK применяются даже при false. Уже загруженные ресурсы не обновляются автоматически: обычный ResourceLoader.Load может вернуть старый объект из кэша. Подключайте обновления до первого обращения к их ресурсам. Свежий DirAccess может перечислять добавленные пути.
| Имя | Тип | По умолчанию |
|---|---|---|
pack | string | — |
replaceFiles | bool | true |
offset | int | 0 |
packПуть файла пакета: абсолютный, asset:// или user://. Не путь уровня внутри него. Успешное подключение не подтверждает наличие всех зависимостей и подлинность автора.
replaceFilesПо умолчанию true: более поздний пакет заменяет обычные совпадающие пути. При false существующие пути сохраняют приоритет, новые всё равно добавляются. Не защищает от записей удаления и не является песочницей.
offsetСмещение начала PCK в байтах; обычно 0. Для ZIP не поддерживается. Это не смещение отдельного ресурса внутри пакета.
booltrue, если пакет распознан и подключён; false при отказе. Не сообщает Error и не проверяет загрузку каждого ресурса пакета.
LocalizePathstring
public static string LocalizePath(string path);Преобразует подходящий абсолютный путь внутри корня проекта в asset://. Абсолютный путь за пределами проекта обычно остаётся абсолютным. Не является общим преобразованием пути папки пользователя в user://; сохраняйте виртуальные пути слотов явно.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
stringSaveError
public static Error Save();Сохраняет конфигурацию в файл project.reckfell.
Примечание: Этот метод предназначен для использования плагинами редактора, поскольку измененные ProjectSettings нельзя загрузить обратно в работающее приложение. Если вы хотите изменить настройки проекта в экспортированных проектах, используйте ProjectSettings.SaveCustom для сохранения файла override.cfg.
ErrorSaveCustomError
public static Error SaveCustom(string file);Сохраняет текущую конфигурацию по указанному пути. Значения, равные исходным, пропускаются; метод не ограничен одним пользовательским ключом и не загружает файл обратно. Для предпочтений игрока обычно нужен отдельный ConfigFile в user://.
| Имя | Тип | По умолчанию |
|---|---|---|
file | string | — |
fileПуть с окончанием .reckfell или override.cfg для текста, либо .binary для двоичного формата. Произвольный .json не поддерживается; каталог должен быть доступен для записи.
ErrorError.Ok при успешной записи; иначе код ошибки. Проверяйте результат перед сообщением об успешном сохранении.
SetAsBasicvoid
public static void SetAsBasic(string name, bool basic);Определяет, считается ли указанная настройка базовой или расширенной. Базовые настройки всегда будут отображаться в настройках проекта. Расширенные настройки будут отображаться только в том случае, если пользователь включит опцию «Расширенные настройки».
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
basic | bool | — |
SetAsInternalvoid
public static void SetAsInternal(string name, bool @internal);Определяет, считается ли указанная настройка внутренней. Внутренняя настройка не будет отображаться в диалоговом окне «Параметры проекта». Это в основном полезно для дополнений, которым необходимо хранить собственные внутренние настройки, не предоставляя их напрямую пользователю.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
internal | bool | — |
SetInitialValuevoid
public static void SetInitialValue(string name, Variant value);Задаёт исходное значение уже существующей настройки, не меняя текущее. При сохранении значение, равное исходному, пропускается. Если ключа нет, сначала создайте его через SetSetting.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
value | Variant | — |
nameКлюч уже существующей настройки.
valueИсходное значение для сравнения при сохранении и восстановления свойства; это не присваивание текущего значения.
SetOrdervoid
public static void SetOrder(string name, int position);Устанавливает порядок значения конфигурации (влияет при сохранении в файле конфигурации).
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
position | int | — |
SetRestartIfChangedvoid
public static void SetRestartIfChanged(string name, bool restart);Устанавливает, требуется ли перезапуск редактора для правильного вступления в силу настройки.
Примечание: Это просто подсказка для отображения пользователю того, что редактор необходимо перезапустить для вступления изменений в силу. Включение ProjectSettings.SetRestartIfChanged не задерживает установку настройки при ее изменении.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
restart | bool | — |
SetSettingvoid
public static void SetSetting(string name, Variant value);Устанавливает значение настройки в памяти; Variant Nil удаляет ключ. Сам не записывает файл и не гарантирует немедленного применения к работающей подсистеме. Например, для текущего лимита кадров меняйте Engine.MaxFps.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
value | Variant | — |
nameПолный ключ изменяемой или создаваемой настройки.
valueНовое значение Variant. Передача default в этот параметр означает Nil и удаляет ключ, а не сбрасывает его к исходному значению.
Сигналы и события1
SettingsChangedСобытие
public static event Action SettingsChanged;Выдается при изменении любой настройки, до одного раза за кадр процесса.