OS
Предоставляет доступ к общим функциям операционной системы.
Предоставляет доступ к общим функциям операционной системы.
Класс OS охватывает наиболее распространенные функции для взаимодействия с операционной системой хоста, такие как видеодрайвер, задержки, переменные среды, выполнение двоичных файлов, командная строка и т. д.
Примечание: В Reckfell функции OS, связанные с управлением окнами, буфером обмена и TTS, были перемещены в синглтон DisplayServer (и класс Window). Функции, связанные со временем, были удалены и доступны только в классе Time.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства4
DeltaSmoothingСвойство
public static bool DeltaSmoothing { get; set; }Если true, движок фильтрует временную дельту, измеренную между каждым кадром, и пытается компенсировать случайные отклонения. Это работает только в системах, где активна V-Sync.
Примечание: При запуске это то же самое, что и ProjectSettings.application/run/delta_smoothing.
LowProcessorUsageModeСвойство
public static bool LowProcessorUsageMode { get; set; }Если true, движок оптимизируется для низкого использования процессора, обновляя экран только при необходимости. Может улучшить расход батареи на мобильных устройствах.
Примечание: При запуске это то же самое, что и ProjectSettings.application/run/low_processor_mode.
LowProcessorUsageModeSleepUsecСвойство
public static int LowProcessorUsageModeSleepUsec { get; set; }Количество сна между кадрами при включенном режиме низкой загрузки процессора в микросекундах. Более высокие значения приведут к снижению загрузки ЦП. См. также OS.LowProcessorUsageMode.
Примечание: При запуске это то же самое, что и ProjectSettings.application/run/low_processor_mode_sleep_usec.
SingletonСвойство
public static OSInstance Singleton { get; }Методы93
AddLoggervoid
public static void AddLogger(Logger logger);Добавьте пользовательский регистратор для перехвата внутреннего потока сообщений.
Внимание!
| Имя | Тип | По умолчанию |
|---|---|---|
logger | Logger | — |
Alertvoid
public static void Alert(string text, string title = "Alert!");Отображает модальное диалоговое окно, используя реализацию хост-платформы. Выполнение движка блокируется до тех пор, пока диалог не будет закрыт.
| Имя | Тип | По умолчанию |
|---|---|---|
text | string | — |
title | string | "Alert!" |
CloseMidiInputsvoid
public static void CloseMidiInputs();Отключает системный драйвер MIDI. Reckfell больше не будет получать InputEventMidi. См. также OS.OpenMidiInputs и OS.GetConnectedMidiInputs.
Примечание: Этот метод реализован в Linux, macOS, Windows и Web.
Crashvoid
public static void Crash(string message);Крушает двигатель (или редактора, если он позвонил в @tool Сценарий). OS.Kill.
Примечание: Этот метод (*) должен использоваться только для испытания крушителя системы, а не для какой-либо другой цели. @C#.assert, ReckfellApi.PushErrorили OS.Alert.
| Имя | Тип | По умолчанию |
|---|---|---|
message | string | — |
CreateInstance2 перегрузки
public static int CreateInstance(ReadOnlySpan<string> arguments);Создаёт новый пример "Reckfell", который работает независимо. arguments используются в указанном порядке и разделены пространством.
Если процесс успешно создан, этот метод возвращает ID нового процесса, который вы можете использовать для мониторинга процесса (и, возможно, прекратить его с помощью OS.Kill) Если процесс не может быть создан, этот метод возвращает -1.
Смотрите. OS.CreateProcess если вы хотите провести другой процесс.
Примечание: Этот метод применяется на Android, Linux, acOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
arguments | ReadOnlySpan<string> | — |
intpublic static int CreateInstance(string[] arguments);Создаёт новый пример "Reckfell", который работает независимо. arguments используются в указанном порядке и разделены пространством.
Если процесс успешно создан, этот метод возвращает ID нового процесса, который вы можете использовать для мониторинга процесса (и, возможно, прекратить его с помощью OS.Kill) Если процесс не может быть создан, этот метод возвращает -1.
Смотрите. OS.CreateProcess если вы хотите провести другой процесс.
Примечание: Этот метод применяется на Android, Linux, acOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
arguments | string[] | — |
intCreateProcess2 перегрузки
public static int CreateProcess(string path, ReadOnlySpan<string> arguments, bool openConsole);Создает новый процесс, который выполняется независимо от Reckfell. Он не будет завершен при завершении Reckfell. Путь, указанный в path, должен существовать и быть исполняемым файлом или пакетом macOS .app. Путь определяется на основе текущей платформы. arguments используются в указанном порядке и разделяются пробелом.
В Windows, если open_console равен true и процесс является консольным приложением, будет открыто новое окно терминала.
Если процесс успешно создан, этот метод возвращает его идентификатор процесса, который можно использовать для мониторинга процесса (и потенциально завершить его с помощью OS.Kill). В противном случае этот метод возвращает -1.
Пример: Запуск другого экземпляра проекта:
var pid = OS.CreateProcess(OS.GetExecutablePath(), []);См. OS.Execute, если вы хотите запустить внешнюю команду и получить результаты.
Примечание: Этот метод реализован в Android, Linux, macOS и Windows.
Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта или системного пакета .app, системные пакеты .app будут игнорировать аргументы.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | ReadOnlySpan<string> | — |
openConsole | bool | — |
intpublic static int CreateProcess(string path, string[] arguments, bool openConsole = false);Создает новый процесс, который выполняется независимо от Reckfell. Он не будет завершен при завершении Reckfell. Путь, указанный в path, должен существовать и быть исполняемым файлом или пакетом macOS .app. Путь определяется на основе текущей платформы. arguments используются в указанном порядке и разделяются пробелом.
В Windows, если open_console равен true и процесс является консольным приложением, будет открыто новое окно терминала.
Если процесс успешно создан, этот метод возвращает его идентификатор процесса, который можно использовать для мониторинга процесса (и потенциально завершить его с помощью OS.Kill). В противном случае этот метод возвращает -1.
Пример: Запуск другого экземпляра проекта:
var pid = OS.CreateProcess(OS.GetExecutablePath(), []);См. OS.Execute, если вы хотите запустить внешнюю команду и получить результаты.
Примечание: Этот метод реализован в Android, Linux, macOS и Windows.
Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта или системного пакета .app, системные пакеты .app будут игнорировать аргументы.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | string[] | — |
openConsole | bool | false |
intDelayMsecvoid
public static void DelayMsec(int msec);Задерживает выполнение текущего потока на msec миллисекунд. msec должен быть больше или равен 0. В противном случае OS.DelayMsec ничего не делает и выводит сообщение об ошибке.
Примечание: OS.DelayMsec — это блокирующий способ задержки выполнения кода. Чтобы задержать выполнение кода неблокирующим способом, можно использовать EntityTree.CreateTimer. Ожидание с EntityTreeTimer задерживает выполнение кода, размещенного под await, не влияя на остальную часть проекта (или редактора для EditorPlugin и EditorScript).
Примечание: Когда OS.DelayMsec вызывается в основном потоке, он замораживает проект и не позволяет ему перерисовывать и регистрировать ввод, пока не пройдет задержка. При использовании OS.DelayMsec как части EditorPlugin или EditorScript редактор будет заморожен, но проект не будет заморожен, если он в данный момент запущен (поскольку проект является независимым дочерним процессом).
| Имя | Тип | По умолчанию |
|---|---|---|
msec | int | — |
DelayUsecvoid
public static void DelayUsec(int usec);Задерживает выполнение текущего потока на usec микросекунд. usec должен быть больше или равен 0. В противном случае OS.DelayUsec ничего не делает и выводит сообщение об ошибке.
Примечание: OS.DelayUsec — это блокирующий способ задержки выполнения кода. Чтобы задержать выполнение кода неблокирующим способом, можно использовать EntityTree.CreateTimer. Ожидание с EntityTreeTimer задерживает выполнение кода, размещенного под await, не влияя на остальную часть проекта (или редактора для EditorPlugin и EditorScript).
Примечание: Когда OS.DelayUsec вызывается в основном потоке, он замораживает проект и не позволяет ему перерисовывать и регистрировать ввод, пока не пройдет задержка. При использовании OS.DelayUsec как части EditorPlugin или EditorScript редактор будет заморожен, но проект не будет заморожен, если он в данный момент запущен (поскольку проект является независимым дочерним процессом).
| Имя | Тип | По умолчанию |
|---|---|---|
usec | int | — |
Execute2 перегрузки
public static int Execute(string path, ReadOnlySpan<string> arguments, Reckfell.Collections.Array output, bool readStderr, bool openConsole);Выполняет заданный процесс блокирующим способом. Файл, указанный в path, должен существовать и быть исполняемым. Будет использоваться системное разрешение пути. arguments используются в заданном порядке, разделяются пробелами и заключаются в кавычки.
Если указан массив output, полный вывод оболочки процесса добавляется к output как один элемент string. Если read_stderr равен true, вывод в стандартный поток ошибок также добавляется к массиву.
В Windows, если open_console равен true и процесс является консольным приложением, открывается новое окно терминала.
Этот метод возвращает код завершения команды или -1, если процесс не выполняется.
Примечание: Основной поток будет заблокирован до тех пор, пока не завершится выполненная команда. Используйте ReckfellThread, чтобы создать отдельный поток, который не будет блокировать основной поток, или используйте OS.CreateProcess, чтобы создать полностью независимый процесс.
Например, чтобы получить список содержимого рабочего каталога:
Reckfell.Collections.Array output = [];
int exitCode = OS.Execute("ls", ["-l", "/tmp"], output);Если вы хотите получить доступ к встроенной оболочке или выполнить составную команду, можно вызвать платформенно-зависимую оболочку. Например:
Reckfell.Collections.Array output = [];
OS.Execute("CMD.exe", ["/C", "cd %TEMP% && dir"], output);Примечание: Этот метод реализован в Android, Linux, macOS и Windows.
Примечание: Чтобы выполнить встроенную команду интерпретатора команд Windows, укажите cmd.exe в path, /c в качестве первого аргумента и нужную команду в качестве второго аргумента.
Примечание: Чтобы выполнить встроенную команду PowerShell, укажите powershell.exe в path, -Command в качестве первого аргумента и нужную команду в качестве второго аргумента.
Примечание: Чтобы выполнить встроенную команду оболочки Unix, укажите имя исполняемого файла оболочки в path, -c в качестве первого аргумента и нужную команду в качестве второго аргумента.
Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта.
Примечание: В Android системные команды, такие как dumpsys, могут быть запущены только на устройстве с правами root.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | ReadOnlySpan<string> | — |
output | Reckfell.Collections.Array | — |
readStderr | bool | — |
openConsole | bool | — |
intpublic static int Execute(string path, string[] arguments, Reckfell.Collections.Array output = null, bool readStderr = false, bool openConsole = false);Выполняет заданный процесс блокирующим способом. Файл, указанный в path, должен существовать и быть исполняемым. Будет использоваться системное разрешение пути. arguments используются в заданном порядке, разделяются пробелами и заключаются в кавычки.
Если указан массив output, полный вывод оболочки процесса добавляется к output как один элемент string. Если read_stderr равен true, вывод в стандартный поток ошибок также добавляется к массиву.
В Windows, если open_console равен true и процесс является консольным приложением, открывается новое окно терминала.
Этот метод возвращает код завершения команды или -1, если процесс не выполняется.
Примечание: Основной поток будет заблокирован до тех пор, пока не завершится выполненная команда. Используйте ReckfellThread, чтобы создать отдельный поток, который не будет блокировать основной поток, или используйте OS.CreateProcess, чтобы создать полностью независимый процесс.
Например, чтобы получить список содержимого рабочего каталога:
Reckfell.Collections.Array output = [];
int exitCode = OS.Execute("ls", ["-l", "/tmp"], output);Если вы хотите получить доступ к встроенной оболочке или выполнить составную команду, можно вызвать платформенно-зависимую оболочку. Например:
Reckfell.Collections.Array output = [];
OS.Execute("CMD.exe", ["/C", "cd %TEMP% && dir"], output);Примечание: Этот метод реализован в Android, Linux, macOS и Windows.
Примечание: Чтобы выполнить встроенную команду интерпретатора команд Windows, укажите cmd.exe в path, /c в качестве первого аргумента и нужную команду в качестве второго аргумента.
Примечание: Чтобы выполнить встроенную команду PowerShell, укажите powershell.exe в path, -Command в качестве первого аргумента и нужную команду в качестве второго аргумента.
Примечание: Чтобы выполнить встроенную команду оболочки Unix, укажите имя исполняемого файла оболочки в path, -c в качестве первого аргумента и нужную команду в качестве второго аргумента.
Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта.
Примечание: В Android системные команды, такие как dumpsys, могут быть запущены только на устройстве с правами root.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | string[] | — |
output | Reckfell.Collections.Array | null |
readStderr | bool | false |
openConsole | bool | false |
intExecuteWithPipe4 перегрузки
public static Reckfell.Collections.Dictionary ExecuteWithPipe(string path, ReadOnlySpan<string> arguments);Создает новый процесс, который выполняется независимо от Reckfell с перенаправленным вводом-выводом. Он не будет завершен при завершении Reckfell. Путь, указанный в path, должен существовать и быть исполняемым файлом или пакетом macOS .app. Путь определяется на основе текущей платформы. arguments используются в указанном порядке и разделяются пробелом.
Если blocking равно false, созданные каналы работают в неблокируемом режиме, т. е. операции чтения и записи будут возвращаться немедленно. Используйте FileAccess.GetError, чтобы проверить, была ли последняя операция чтения/записи успешной.
Если процесс не может быть создан, этот метод возвращает пустой Reckfell.Collections.Dictionary. В противном случае этот метод возвращает Reckfell.Collections.Dictionary со следующими ключами:
"stdio"-FileAccessдля доступа к каналам stdin и stdout процесса (чтение/запись)."stderr"-FileAccessдля доступа к каналу stderr процесса (только для чтения)."pid"- идентификатор процесса какOS.Kill). Примечание: Этот метод реализован в Android, Linux, macOS и Windows. Примечание: Чтобы выполнить встроенную команду интерпретатора команд Windows, укажитеcmd.exeвpath,/cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду PowerShell, укажитеpowershell.exeвpath,-Commandв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду оболочки Unix, укажите имя исполняемого файла оболочки вpath,-cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта или системного пакета .app, системные пакеты .app будут игнорировать аргументы.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | ReadOnlySpan<string> | — |
Reckfell.Collections.Dictionarypublic static Reckfell.Collections.Dictionary ExecuteWithPipe(string path, ReadOnlySpan<string> arguments, bool blocking);Создает новый процесс, который выполняется независимо от Reckfell с перенаправленным вводом-выводом. Он не будет завершен при завершении Reckfell. Путь, указанный в path, должен существовать и быть исполняемым файлом или пакетом macOS .app. Путь определяется на основе текущей платформы. arguments используются в указанном порядке и разделяются пробелом.
Если blocking равно false, созданные каналы работают в неблокируемом режиме, т. е. операции чтения и записи будут возвращаться немедленно. Используйте FileAccess.GetError, чтобы проверить, была ли последняя операция чтения/записи успешной.
Если процесс не может быть создан, этот метод возвращает пустой Reckfell.Collections.Dictionary. В противном случае этот метод возвращает Reckfell.Collections.Dictionary со следующими ключами:
"stdio"-FileAccessдля доступа к каналам stdin и stdout процесса (чтение/запись)."stderr"-FileAccessдля доступа к каналу stderr процесса (только для чтения)."pid"- идентификатор процесса какOS.Kill). Примечание: Этот метод реализован в Android, Linux, macOS и Windows. Примечание: Чтобы выполнить встроенную команду интерпретатора команд Windows, укажитеcmd.exeвpath,/cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду PowerShell, укажитеpowershell.exeвpath,-Commandв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду оболочки Unix, укажите имя исполняемого файла оболочки вpath,-cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта или системного пакета .app, системные пакеты .app будут игнорировать аргументы.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | ReadOnlySpan<string> | — |
blocking | bool | — |
Reckfell.Collections.Dictionarypublic static Reckfell.Collections.Dictionary ExecuteWithPipe(string path, string[] arguments);Создает новый процесс, который выполняется независимо от Reckfell с перенаправленным вводом-выводом. Он не будет завершен при завершении Reckfell. Путь, указанный в path, должен существовать и быть исполняемым файлом или пакетом macOS .app. Путь определяется на основе текущей платформы. arguments используются в указанном порядке и разделяются пробелом.
Если blocking равно false, созданные каналы работают в неблокируемом режиме, т. е. операции чтения и записи будут возвращаться немедленно. Используйте FileAccess.GetError, чтобы проверить, была ли последняя операция чтения/записи успешной.
Если процесс не может быть создан, этот метод возвращает пустой Reckfell.Collections.Dictionary. В противном случае этот метод возвращает Reckfell.Collections.Dictionary со следующими ключами:
"stdio"-FileAccessдля доступа к каналам stdin и stdout процесса (чтение/запись)."stderr"-FileAccessдля доступа к каналу stderr процесса (только для чтения)."pid"- идентификатор процесса какOS.Kill). Примечание: Этот метод реализован в Android, Linux, macOS и Windows. Примечание: Чтобы выполнить встроенную команду интерпретатора команд Windows, укажитеcmd.exeвpath,/cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду PowerShell, укажитеpowershell.exeвpath,-Commandв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду оболочки Unix, укажите имя исполняемого файла оболочки вpath,-cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта или системного пакета .app, системные пакеты .app будут игнорировать аргументы.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | string[] | — |
Reckfell.Collections.Dictionarypublic static Reckfell.Collections.Dictionary ExecuteWithPipe(string path, string[] arguments, bool blocking = true);Создает новый процесс, который выполняется независимо от Reckfell с перенаправленным вводом-выводом. Он не будет завершен при завершении Reckfell. Путь, указанный в path, должен существовать и быть исполняемым файлом или пакетом macOS .app. Путь определяется на основе текущей платформы. arguments используются в указанном порядке и разделяются пробелом.
Если blocking равно false, созданные каналы работают в неблокируемом режиме, т. е. операции чтения и записи будут возвращаться немедленно. Используйте FileAccess.GetError, чтобы проверить, была ли последняя операция чтения/записи успешной.
Если процесс не может быть создан, этот метод возвращает пустой Reckfell.Collections.Dictionary. В противном случае этот метод возвращает Reckfell.Collections.Dictionary со следующими ключами:
"stdio"-FileAccessдля доступа к каналам stdin и stdout процесса (чтение/запись)."stderr"-FileAccessдля доступа к каналу stderr процесса (только для чтения)."pid"- идентификатор процесса какOS.Kill). Примечание: Этот метод реализован в Android, Linux, macOS и Windows. Примечание: Чтобы выполнить встроенную команду интерпретатора команд Windows, укажитеcmd.exeвpath,/cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду PowerShell, укажитеpowershell.exeвpath,-Commandв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: Чтобы выполнить встроенную команду оболочки Unix, укажите имя исполняемого файла оболочки вpath,-cв качестве первого аргумента и нужную команду в качестве второго аргумента. Примечание: В macOS изолированные приложения ограничены запуском только встроенных вспомогательных исполняемых файлов, указанных во время экспорта или системного пакета .app, системные пакеты .app будут игнорировать аргументы.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
arguments | string[] | — |
blocking | bool | true |
Reckfell.Collections.DictionaryFindKeycodeFromStringKey
public static Key FindKeycodeFromString(string @string);Находит код клавиши для заданной строки. Возвращаемые значения эквивалентны константам Key.
ReckfellApi.Print(OS.FindKeycodeFromString("C")); // Prints C (Key.C)
ReckfellApi.Print(OS.FindKeycodeFromString("Escape")); // Prints Escape (Key.Escape)
ReckfellApi.Print(OS.FindKeycodeFromString("Shift+Tab")); // Prints 37748738 (KeyModifierMask.MaskShift | Key.Tab)
ReckfellApi.Print(OS.FindKeycodeFromString("Unknown")); // Prints None (Key.None)См. также OS.GetKeycodeString.
| Имя | Тип | По умолчанию |
|---|---|---|
string | string | — |
KeyGetCacheDirstring
public static string GetCacheDir();Возвращает глобальный каталог данных кэша в соответствии со стандартами операционной системы.
На платформе Linux/BSD этот путь можно переопределить, установив переменную среды XDG_CACHE_HOME перед запуском проекта. Для получения дополнительной информации см. Пути к файлам в проектах Reckfell в документации. См. также OS.GetConfigDir и OS.GetDataDir.
Не путать с OS.GetUserDataDir, который возвращает специфичный для проекта путь к данным пользователя.
stringGetCmdlineArgsstring[]
public static string[] GetCmdlineArgs();Возвращает аргументы движка, переданные текущему процессу, без пользовательского хвоста после -- или ++. Для параметров игры используйте GetCmdlineUserArgs.
string[]Массив строк аргументов движка. Пользовательские аргументы после разделителя в него не входят.
GetCmdlineUserArgsstring[]
public static string[] GetCmdlineUserArgs();Возвращает аргументы после разделителя -- или ++ в исходном порядке. Движок их не интерпретирует: --headless в этом хвосте является строкой для вашей игры, а не опцией дисплея.
string[]Массив пользовательских аргументов; пуст, если пользовательского хвоста нет. Значение с пробелами сохраняется одним элементом, если оболочка передала его одним аргументом.
GetConfigDirstring
public static string GetConfigDir();Возвращает глобальный каталог конфигурации пользователя в соответствии со стандартами операционной системы.
На платформе Linux/BSD этот путь можно переопределить, установив переменную среды XDG_CONFIG_HOME перед запуском проекта. Для получения дополнительной информации см. Пути к файлам в проектах Reckfell в документации. См. также OS.GetCacheDir и OS.GetDataDir.
Не путать с OS.GetUserDataDir, который возвращает специфичный для проекта путь к данным пользователя.
stringGetConnectedMidiInputsstring[]
public static string[] GetConnectedMidiInputs();Возвращает массив имен подключенных устройств MIDI, если они существуют. Возвращает пустой массив, если системный драйвер MIDI ранее не был инициализирован с помощью OS.OpenMidiInputs. См. также OS.CloseMidiInputs.
Примечание: Этот метод реализован в Linux, macOS, Windows и Web.
Примечание: На веб-платформе веб-MIDI должен поддерживаться браузером. На данный момент он поддерживается всеми основными браузерами, кроме Safari.
Примечание: На веб-платформе использование ввода MIDI требует предварительного предоставления разрешения браузеру. Этот запрос разрешения выполняется при вызове OS.OpenMidiInputs. Браузер воздержится от обработки ввода MIDI, пока пользователь не примет запрос разрешения.
string[]GetDataDirstring
public static string GetDataDir();Возвращает глобальный каталог пользовательских данных в соответствии со стандартами операционной системы.
На платформе Linux/BSD этот путь можно переопределить, установив переменную среды XDG_DATA_HOME перед запуском проекта. Для получения дополнительной информации см. Пути к файлам в проектах Reckfell в документации. См. также OS.GetCacheDir и OS.GetConfigDir.
Не путать с OS.GetUserDataDir, который возвращает специфичный для проекта путь к пользовательским данным.
stringGetDistributionNamestring
public static string GetDistributionName();Возвращает имя дистрибутива для платформ Linux и BSD (например, "Ubuntu", "Manjaro", "OpenBSD" и т. д.).
Возвращает то же значение, что и OS.GetName для стандартных Android ROM, но пытается вернуть пользовательское имя ROM для популярных производных Android, таких как "LineageOS".
Возвращает то же значение, что и OS.GetName для других платформ.
Примечание: Этот метод не поддерживается на веб-платформе. Он возвращает пустую строку.
stringGetEntropybyte[]
public static byte[] GetEntropy(int size);Генерирует byte[] криптографически безопасных случайных байтов с заданным size.
Примечание: Генерация больших объемов байтов с использованием этого метода может привести к блокировке и энтропии более низкого качества на большинстве платформ. Использование Crypto.GenerateRandomBytes является предпочтительным в большинстве случаев.
| Имя | Тип | По умолчанию |
|---|---|---|
size | int | — |
byte[]GetEnvironmentstring
public static string GetEnvironment(string variable);Возвращает значение переменной данной среды или пустой строки, если variable не существует.
Примечание: Перепроверьте корпус variable. Environment На всех платформах, кроме Windows, имена переменных чувствительны к делу.
Примечание: Применительно к макосу приложения не имеют доступа к переменным среды скорлупы.
| Имя | Тип | По умолчанию |
|---|---|---|
variable | string | — |
stringGetExecutablePathstring
public static string GetExecutablePath();Возвращает путь к текущему исполняемому файлу движка.
Примечание: В macOS, если вы хотите запустить другой экземпляр Reckfell, всегда используйте OS.CreateInstance вместо того, чтобы полагаться на путь к исполняемому файлу.
stringGetGrantedPermissionsstring[]
public static string[] GetGrantedPermissions();На устройствах Android: возвращает список предоставленных опасных разрешений. На macOS: возвращает список предоставленных разрешений и выбранных пользователем папок, доступных приложению (только для изолированных приложений). Используйте встроенный диалог файлов для запроса разрешения на доступ к папке. На iOS, visionOS: возвращает список предоставленных разрешений.
string[]GetKeycodeStringstring
public static string GetKeycodeString(Key code);Возвращает заданный код клавиши как string.
ReckfellApi.Print(OS.GetKeycodeString(Key.C)); // Prints "C"
ReckfellApi.Print(OS.GetKeycodeString(Key.Escape)); // Prints "Escape"
ReckfellApi.Print(OS.GetKeycodeString((Key)KeyModifierMask.MaskShift | Key.Tab)); // Prints "Shift+Tab"См. также OS.FindKeycodeFromString, InputEventKey.Keycode и InputEventKey.GetKeycodeWithModifiers.
| Имя | Тип | По умолчанию |
|---|---|---|
code | Key | — |
stringGetLocalestring
public static string GetLocale();Возвращает хозяина OS как местность string формы language_Script_COUNTRY_VARIANT@extra. Каждая подстрока после language является факультативным и может не существовать.
language- 2 или 3 буква языковой кодВ нижнем случае.- [Код пропусков]Script4-букв. Код сценария, в случае с титулом.
COUNTRY- 2 или 3 буква Код страны, в верхнем случае.VARIANT- языковой вариант, регион и порядок сортировки.extra- разделенный на полуколонну список дополнительных ключевых слов, включая валюту, календарь, сортировочный порядок и информацию о системе нумерации. Если вам нужен только языковой код, а не полностью указанный адрес OS, ты можешь использоватьOS.GetLocaleLanguage.
stringGetLocaleLanguagestring
public static string GetLocaleLanguage();Возвращает хозяина OS 2 или 3 буквы языковой код как строку, которая должна быть последовательной на всех платформах. Это эквивалентно извлечению language в части OS.GetLocale нить.
Это может быть использовано для сужения полностью определенных локальных строк до «общего» языкового кода, когда вам не нужна дополнительная информация о страновом коде или вариантах. fr_CA Это вернётся. fr.
stringGetLowProcessorUsageModeSleepUsecint
public static int GetLowProcessorUsageModeSleepUsec();intGetMainThreadIdulong
public static ulong GetMainThreadId();Возвращает идентификатор основной нитки. OS.GetThreadCallerId.
Примечание: Thread Идентификация не является детерминистской и может быть повторно использована в ходе всех повторных прикладных программ.
ulongGetMemoryInfoReckfell.Collections.Dictionary
public static Reckfell.Collections.Dictionary GetMemoryInfo();Возвращает Reckfell.Collections.Dictionary, содержащий информацию о текущей памяти со следующими записями:
"physical"- общий объем используемой физической памяти в байтах. Это значение может быть немного меньше фактического объема физической памяти, поскольку оно не включает память, зарезервированную ядром и устройствами."free"- объем физической памяти, который может быть немедленно выделен без доступа к диску или других затратных операций, в байтах. Процесс может выделить больше физической памяти, но это действие потребует перемещения неактивных страниц на диск, что может быть затратно."available"- объем памяти, который может быть выделен без расширения файла(ов) подкачки, в байтах. Это значение включает как физическую память, так и подкачку."stack"- размер стека текущего потока в байтах. Примечание: Значение каждой записи может быть-1, если оно неизвестно.
Reckfell.Collections.DictionaryGetModelNamestring
public static string GetModelName();Возвращает название модели текущего устройства.
Примечание: Этот метод реализован на Android, iOS, macOS и Windows. Возвращает "GenericDevice" на неподдерживаемых платформах.
stringGetNamestring
public static string GetName();Возвращает имя хост-платформы.
- В Windows это
"Windows". - В macOS это
"macOS". - В операционных системах на базе Linux это
"Linux". - В операционных системах на базе BSD это
"FreeBSD","NetBSD","OpenBSD"или"BSD"в качестве резерва. - В Android это
"Android". - В iOS это
"iOS". - В Web это
"Web". Примечание: Пользовательские сборки движка могут поддерживать дополнительные платформы, такие как консоли, возможно, возвращая другие имена.
switch (OS.GetName())
{
case "Windows":
ReckfellApi.Print("Welcome to Windows");
break;
case "macOS":
ReckfellApi.Print("Welcome to macOS!");
break;
case "Linux":
case "FreeBSD":
case "NetBSD":
case "OpenBSD":
case "BSD":
ReckfellApi.Print("Welcome to Linux/BSD!");
break;
case "Android":
ReckfellApi.Print("Welcome to Android!");
break;
case "iOS":
ReckfellApi.Print("Welcome to iOS!");
break;
case "Web":
ReckfellApi.Print("Welcome to the Web!");
break;
}Примечание: На веб-платформах все еще можно определить хозяйскую платформу OS с метками. OS.HasFeature.
stringGetPreferredLocalesstring[]
public static string[] GetPreferredLocales();Возвращает множество мест, предпочтительных пользователем, в порядке предпочтения. string в бланке language_Script_COUNTRY_VARIANT@extra. Каждая подстрока после language является факультативным и может не существовать.
language- 2 или 3 буква языковой кодВ нижнем случае.- [Код пропусков]Script4-букв. Код сценария, в случае с титулом.
COUNTRY- 2 или 3 буква Код страны, в верхнем случае.VARIANT- языковой вариант, регион и порядок сортировки.extra- разделенный на полуколонну список дополнительных ключевых слов, включая валюту, календарь, сортировочный порядок и информацию о системе нумерации. Примечание: Этот метод применяется на acOS, iOS и Windows.
string[]GetProcessExitCodeint
public static int GetProcessExitCode(int pid);Возвращает код выхода порожденного процесса после завершения его выполнения (см. OS.IsProcessRunning).
Возвращает -1, если pid не является PID порожденного дочернего процесса, процесс все еще выполняется или метод не реализован для текущей платформы.
Примечание: Возвращает -1, если pid является процессом приложения, связанным с macOS.
Примечание: Этот метод реализован в Android, Linux, macOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
pid | int | — |
intGetProcessIdint
public static int GetProcessId();Возвращает номер, используемый хост-машиной для уникальной идентификации этого приложения.
Примечание: В Интернете этот метод всегда возвращает 0.
intGetProcessorCountint
public static int GetProcessorCount();Возвращает количество логических ядер ЦП, доступных на хост-машине. На ЦП с включенной функцией HyperThreading это число будет больше количества физических ядер ЦП.
intGetProcessorNamestring
public static string GetProcessorName();Возвращает полное название модели процессора на приводной машине (например. "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz").
Примечание: Этот метод применяется только на Windows, acOS, Linux, Android (API уровень 31+) и iOS. OS.GetProcessorName возвратит пустую нить.
stringGetRestartOnExitArgumentsstring[]
public static string[] GetRestartOnExitArguments();Возвращает список аргументов командной строки, которые будут использоваться при автоматическом перезапуске проекта с использованием OS.SetRestartOnExit. См. также OS.IsRestartOnExitSet.
string[]GetStaticMemoryPeakUsageulong
public static ulong GetStaticMemoryPeakUsage();Возвращает максимальный объем используемой статической памяти. Работает только в отладочных сборках.
ulongGetStaticMemoryUsageulong
public static ulong GetStaticMemoryUsage();Возвращает объем статической памяти, используемой программой в байтах. Работает только в отладочных сборках.
ulongGetStdInTypeOS.StdHandleType
public static OS.StdHandleType GetStdInType();Возвращает тип стандартного устройства ввода.
Примечание: Этот метод реализован в Linux, macOS и Windows.
Примечание: В экспортированных сборках Windows запустите исполняемый файл оболочки консоли для доступа к стандартному вводу. Если вам нужен один исполняемый файл с полной поддержкой консоли, используйте пользовательскую сборку, скомпилированную с флагом windows_subsystem=console.
OS.StdHandleTypeGetStdOutTypeOS.StdHandleType
public static OS.StdHandleType GetStdOutType();Возвращает тип стандартного устройства вывода. Примечание: Этот метод реализован в Linux, macOS и Windows.
OS.StdHandleTypeGetStderrTypeOS.StdHandleType
public static OS.StdHandleType GetStderrType();Возвращает тип стандартного устройства ошибок. Примечание: Этот метод реализован в Linux, macOS и Windows.
OS.StdHandleTypeGetSystemCaCertificatesstring
public static string GetSystemCaCertificates();Возвращает список центров сертификации, которым доверяет операционная система, в виде строки объединенных сертификатов в формате PEM.
stringGetSystemDirstring
public static string GetSystemDir(OS.SystemDir dir, bool sharedStorage = true);Возвращает путь к часто используемым папкам на разных платформах, как определено dir. См. константы OS.SystemDir для доступных расположений.
Примечание: Этот метод реализован в Android, Linux, macOS и Windows.
Примечание: Общее хранилище реализовано в Android и позволяет различать каталоги, специфичные для приложения, и общие каталоги, если shared_storage имеет значение true. Общие каталоги имеют дополнительные ограничения в Android.
| Имя | Тип | По умолчанию |
|---|---|---|
dir | OS.SystemDir | — |
sharedStorage | bool | true |
stringGetSystemFontPathstring
public static string GetSystemFontPath(string fontName, int weight = 400, int stretch = 100, bool italic = false);Возвращает путь к системному файлу шрифта с font_name и стилем. Возвращает пустую строку, если соответствующие шрифты не найдены.
Для запроса шрифтов по умолчанию можно использовать следующие псевдонимы: "sans-serif", "serif", "monospace", "cursive" и "fantasy".
Примечание: Возвращаемый шрифт может иметь другой стиль, если запрошенный стиль недоступен.
Примечание: Этот метод реализован на Android, iOS, Linux, macOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
fontName | string | — |
weight | int | 400 |
stretch | int | 100 |
italic | bool | false |
stringGetSystemFontPathForTextstring[]
public static string[] GetSystemFontPathForText(string fontName, string text, string locale = "", string script = "", int weight = 400, int stretch = 100, bool italic = false);Возвращает набор файловых дорожек системы, которые аналогичны шрифту с font_name и стиль для указанного текста, локализации и сценария. Возвращает пустой массив, если не найдены соответствующие шрифты.
Для запроса шрифтов по умолчанию могут использоваться следующие псевдонимы: "sans-serif", "serif" , "monospace", "cursive" и "fantasy".
Примечание: В зависимости от OS, нет гарантии, что любой из возвращенных шрифтов будет подходит для перевода указанного текста. Фонты должны быть загружены и проверены в том порядке, в котором они возвращены, и первый подходит.
Примечание: Вернутые шрифты могут иметь иной стиль, если требуемый стиль отсутствует или относится к другой группе шрифтов.
Примечание: Этот метод применяется на Android, iOS, Linux, acOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
fontName | string | — |
text | string | — |
locale | string | "" |
script | string | "" |
weight | int | 400 |
stretch | int | 100 |
italic | bool | false |
string[]GetSystemFontsstring[]
public static string[] GetSystemFonts();Возвращает список доступных имен семейств шрифтов. Примечание: Этот метод реализован на Android, iOS, Linux, macOS и Windows.
string[]GetTempDirstring
public static string GetTempDir();Возвращает глобальный временный каталог данных в соответствии со стандартами операционной системы.
stringGetThreadCallerIdulong
public static ulong GetThreadCallerId();Возвращает идентификатор текущей нитки. Это может быть использовано в журналах для облегчения отладки многослойных приложений. Примечание: Thread Идентификация не является детерминистской и может быть повторно использована в ходе всех повторных прикладных программ.
ulongGetUniqueIdstring
public static string GetUniqueId();Возвращает строку, которая уникальна для устройства. Примечание: Эта строка может измениться без уведомления, если пользователь переустановит свою операционную систему, обновит ее или изменит свое оборудование. Это означает, что ее, как правило, не следует использовать для шифрования постоянных данных, поскольку данные, сохраненные до неожиданного изменения идентификатора, станут недоступными. Возвращаемая строка также может быть подделана с помощью внешних программ, поэтому не полагайтесь на строку, возвращаемую этим методом, в целях безопасности. Примечание: В Интернете возвращает пустую строку и генерирует ошибку, поскольку этот метод не может быть реализован по соображениям безопасности.
stringGetUserDataDirstring
public static string GetUserDataDir();Возвращает абсолютный путь к каталогу, в который записываются пользовательские данные (каталог user:// в Reckfell). Путь зависит от имени проекта и ProjectSettings.application/config/use_custom_user_dir.
- В Windows это
%AppData%\Reckfell\app_userdata\[project_name]или%AppData%\[custom_name], если заданоuse_custom_user_dir.%AppData%расширяется до%UserProfile%\AppData\Roaming. - В macOS это
~/Library/Application Support/Reckfell/app_userdata/[project_name]или~/Library/Application Support/[custom_name], если заданоuse_custom_user_dir. - В Linux и BSD это
~/.local/share/reckfell/app_userdata/[project_name]или~/.local/share/[custom_name], если заданоuse_custom_user_dir. - В Android и iOS это изолированный каталог во внутреннем или внешнем хранилище в зависимости от конфигурации пользователя.
- В Web это виртуальный каталог, управляемый браузером.
Если имя проекта пустое,
[project_name]возвращается к[unnamed project]. Не путать сOS.GetDataDir, который возвращает глобальный (не относящийся к проекту) домашний каталог пользователя.
stringGetVersionstring
public static string GetVersion();Возвращает точную производственную и сборочную версию операционной системы. Она отличается от фирменной версии, используемой в маркетинге. Это помогает различать разные выпуски операционных систем, включая второстепенные версии, а также внутренние и пользовательские сборки.
- Для Windows возвращаются основная и второстепенная версии, а также номер сборки. Например, возвращаемая строка может выглядеть как
10.0.9926для сборки Windows 10. - Для скользящих дистрибутивов, таких как Арка Линюкс, возвращается пустая строка.
- Для macOS и iOS возвращаются основная и второстепенная версии, а также номер патча.
- Для Android возвращаются версия SDK и инкрементный номер сборки. Если это пользовательская прошивка, она пытается вернуть свою версию. Примечание: Этот метод не поддерживается на веб-платформе. Он возвращает пустую строку.
stringGetVersionAliasstring
public static string GetVersionAlias();Возвращает фирменную версию, используемую в маркетинге, за которой следует номер сборки (в Windows), номер версии (в macOS) или версия SDK и инкрементный номер сборки (в Android). Примеры включают 11 (build 22000), Sequoia (15.0.0) и 15 (SDK 35 build abc528-11988f).
Затем это значение можно добавить к OS.GetName, чтобы получить полное, понятное человеку имя операционной системы и комбинацию версии для операционной системы. Обновления функций Windows, такие как 24H2, не содержатся в результирующей строке, но Сервер окон распознается как таковой (например, 2025 (build 26100) для Сервер окон 2025).
Примечание: Этот метод поддерживается только в Windows, macOS и Android. В других операционных системах он возвращает то же значение, что и OS.GetVersion.
stringGetVideoAdapterDriverInfostring[]
public static string[] GetVideoAdapterDriverInfo();Возвращает имя и версию драйвера видеоадаптера для текущей активной видеокарты пользователя в виде string[]. См. также RenderingServer.GetVideoAdapterApiVersion.
Первый элемент содержит имя драйвера, например, nvidia, amdgpu и т. д.
Второй элемент содержит версию драйвера. Например, для драйвера nvidia на платформе Linux/BSD версия имеет формат 510.85.02. Для Windows формат драйвера — 31.0.15.1659.
Примечание: Этот метод поддерживается только в Linux/BSD и Windows, если он не запущен в режиме headless. На других платформах он возвращает пустой массив.
Примечание: Этот метод будет выполняться медленно при первом вызове в сеансе; его выполнение может занять несколько секунд в зависимости от операционной системы и оборудования. Он блокируется при вызове в основном потоке, поэтому рекомендуется вызывать его в отдельном потоке с помощью ReckfellThread. Это позволяет движку продолжать работу во время получения информации. Однако OS.GetVideoAdapterDriverInfo не потокобезопасен, поэтому его не следует вызывать из нескольких потоков одновременно.
string[]HasEnvironmentbool
public static bool HasEnvironment(string variable);Returns (Возврат) true если среда изменяется с наименованием variable существует.
Примечание: Перепроверьте корпус variable. Environment На всех платформах, кроме Windows, имена переменных чувствительны к делу.
| Имя | Тип | По умолчанию |
|---|---|---|
variable | string | — |
boolHasFeaturebool
public static bool HasFeature(string tagName);Проверяет точное имя признака сборки, платформы или пользовательской метки. Регистр важен. editor означает сборку редактора и остаётся истинным при запуске проекта; editor_runtime отличает такой запуск от работы внутри редактора. application/config/features не регистрирует пользовательские метки.
| Имя | Тип | По умолчанию |
|---|---|---|
tagName | string | — |
tagNameТочное имя метки, например windows, editor_runtime или demo. Windows не совпадает с windows.
booltrue, если указанная метка активна в текущем процессе; false для неизвестной или неактивной метки.
IsDebugBuildbool
public static bool IsDebugBuild();Возвращает true, если двоичный файл Reckfell, используемый для запуска проекта, является шаблоном экспорта debug, или при запуске в редакторе.
Возвращает false, если двоичный файл Reckfell, используемый для запуска проекта, является шаблоном экспорта release.
Примечание: Чтобы проверить, является ли двоичный файл Reckfell, используемый для запуска проекта, шаблоном экспорта (отладки или выпуска), используйте вместо этого OS.has_feature("template").
boolIsDeltaSmoothingEnabledbool
public static bool IsDeltaSmoothingEnabled();boolIsInLowProcessorUsageModebool
public static bool IsInLowProcessorUsageMode();boolIsKeycodeUnicodebool
public static bool IsKeycodeUnicode(long code);Возвращает true, если входной keycode соответствует символу Unicode. Список кодов см. в константах Key.
ReckfellApi.Print(OS.IsKeycodeUnicode((long)Key.G)); // Prints True
ReckfellApi.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Prints True
ReckfellApi.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Prints False
ReckfellApi.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Prints False| Имя | Тип | По умолчанию |
|---|---|---|
code | long | — |
boolIsProcessRunningbool
public static bool IsProcessRunning(int pid);Возвращает true, если идентификатор дочернего процесса (pid) все еще выполняется, или false, если он был завершен. pid должен быть допустимым идентификатором, сгенерированным из OS.CreateProcess.
Примечание: Этот метод реализован в Android, iOS, Linux, macOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
pid | int | — |
boolIsRestartOnExitSetbool
public static bool IsRestartOnExitSet();Возвращает true, если проект автоматически перезапустится при выходе из него по любой причине, false в противном случае. См. также OS.SetRestartOnExit и OS.GetRestartOnExitArguments.
boolIsSandboxedbool
public static bool IsSandboxed();Возвращает true, если приложение запущено в песочнице.
Примечание: Этот метод реализован только в macOS и Linux.
boolIsStdOutVerbosebool
public static bool IsStdOutVerbose();Возвращает true, если движок был запущен с аргументом командной строки --verbose или -v, или если ProjectSettings.debug/settings/stdout/verbose_stdout равен true. См. также @GlobalScope.print_verbose.
boolIsUserfsPersistentbool
public static bool IsUserfsPersistent();Возвращает true, если файловая система user:// является постоянной, то есть ее состояние остается прежним после того, как игрок выходит из игры и снова ее запускает. Относится к веб-платформе, где эта постоянная возможность может быть недоступна.
boolKillError
public static Error Kill(int pid);Убить (завершить) процесс, идентифицированный заданным идентификатором процесса (pid), например, идентификатором, возвращаемым OS.Execute в неблокируемом режиме. См. также OS.Crash.
Примечание: Этот метод также можно использовать для уничтожения процессов, которые не были порождены движком.
Примечание: Этот метод реализован в Android, iOS, Linux, macOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
pid | int | — |
ErrorMoveToTrashError
public static Error MoveToTrash(string path);Перемещает файл или каталог по указанному path в системную корзину. См. также DirAccess.Remove.
Метод принимает только глобальные пути, поэтому вам может потребоваться использовать ProjectSettings.GlobalizePath. Не используйте его для файлов в asset://, так как он не будет работать в экспортированных проектах.
Возвращает FAILED, если файл или каталог не могут быть найдены или система не поддерживает этот метод.
var fileToRemove = "user://slot1.save";
OS.MoveToTrash(ProjectSettings.GlobalizePath(fileToRemove));Примечание: Этот метод реализован на Android, Linux, macOS и Windows. Примечание: Если пользователь отключил корзину в своей системе, файл будет удален навсегда.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
ErrorOpenMidiInputsvoid
public static void OpenMidiInputs();Инициализирует синглтон для системного драйвера MIDI, позволяя Reckfell получать InputEventMidi. См. также OS.GetConnectedMidiInputs и OS.CloseMidiInputs.
Примечание: Этот метод реализован в Linux, macOS, Windows и Web.
Примечание: На веб-платформе веб-MIDI должен поддерживаться браузером. На данный момент он поддерживается всеми основными браузерами, кроме Safari.
Примечание: На веб-платформе использование ввода MIDI требует предварительного предоставления разрешения браузеру. Этот запрос разрешения выполняется при вызове OS.OpenMidiInputs. Браузер воздержится от обработки ввода MIDI, пока пользователь не примет запрос разрешения.
OpenWithProgram2 перегрузки
public static Error OpenWithProgram(string programPath, ReadOnlySpan<string> paths);Открывает один или несколько файлов/каталогов с помощью указанного приложения. Параметр program_path задаёт путь к приложению, используемому для открытия файлов, а paths содержит массив путей к файлам/каталогам, которые нужно открыть.
Примечание: Этот метод в основном актуален только для macOS, где открытие файлов с помощью OS.CreateProcess может завершиться ошибкой. На других платформах используется OS.CreateProcess.
Примечание: В macOS параметр program_path в идеале должен быть путём к пакету .app.
| Имя | Тип | По умолчанию |
|---|---|---|
programPath | string | — |
paths | ReadOnlySpan<string> | — |
Errorpublic static Error OpenWithProgram(string programPath, string[] paths);Открывает один или несколько файлов/каталогов с помощью указанного приложения. Параметр program_path задаёт путь к приложению, используемому для открытия файлов, а paths содержит массив путей к файлам/каталогам, которые нужно открыть.
Примечание: Этот метод в основном актуален только для macOS, где открытие файлов с помощью OS.CreateProcess может завершиться ошибкой. На других платформах используется OS.CreateProcess.
Примечание: В macOS параметр program_path в идеале должен быть путём к пакету .app.
| Имя | Тип | По умолчанию |
|---|---|---|
programPath | string | — |
paths | string[] | — |
ErrorReadBufferFromStdInbyte[]
public static byte[] ReadBufferFromStdIn(long bufferSize = 1024);Считывает пользовательский ввод как необработанные данные из стандартного ввода. Эта операция может быть блокирующей, что приводит к замораживанию окна, если OS.ReadBufferFromStdIn вызывается в основном потоке.
- Если стандартный ввод — консоль, этот метод будет блокироваться до тех пор, пока программа не получит разрыв строки в стандартном вводе (обычно нажатием пользователем [kbd]Enter[/kbd]).
- Если стандартный ввод — канал, этот метод будет блокироваться до тех пор, пока не будет прочитано определенное количество данных или канал не будет закрыт.
- Если стандартный ввод — файл, этот метод прочитает определенное количество данных (или меньше, если достигнут конец файла) и немедленно вернется.
Примечание: Этот метод реализован в Linux, macOS и Windows.
Примечание: В экспортированных сборках Windows запустите исполняемый файл оболочки консоли для доступа к терминалу. Если стандартный ввод — консоль, вызов этого метода без оболочки консоли приведет к постоянной заморозке. Если стандартный ввод — это канал или файл, его можно использовать без оболочки консоли. Если вам нужен один исполняемый файл с полной поддержкой консоли, используйте пользовательскую сборку, скомпилированную с флагом
windows_subsystem=console.
| Имя | Тип | По умолчанию |
|---|---|---|
bufferSize | long | 1024 |
byte[]ReadStringFromStdIn2 перегрузки
public static string ReadStringFromStdIn();Считывает пользовательский ввод как строку в кодировке UTF-8 из стандартного ввода. Эта операция может быть блокирующей, что приводит к замораживанию окна, если OS.ReadStringFromStdIn вызывается в основном потоке.
- Если стандартный ввод — консоль, этот метод будет блокироваться до тех пор, пока программа не получит разрыв строки в стандартном вводе (обычно нажатием пользователем [kbd]Enter[/kbd]).
- Если стандартный ввод — канал, этот метод будет блокироваться до тех пор, пока не будет прочитано определенное количество данных или канал не будет закрыт.
- Если стандартный ввод — файл, этот метод прочитает определенное количество данных (или меньше, если достигнут конец файла) и немедленно вернет управление.
Примечание: Этот метод автоматически заменяет разрывы строк
\r\nна\nи удаляет их из конца строки. ИспользуйтеOS.ReadBufferFromStdInдля чтения необработанных данных. Примечание: Этот метод реализован в Linux, macOS и Windows. Примечание: В экспортированных сборках Windows запустите исполняемый файл оболочки консоли, чтобы получить доступ к терминалу. Если стандартный ввод — консоль, вызов этого метода без оболочки консоли зависнет навсегда. Если стандартный ввод — канал или файл, его можно использовать без оболочки консоли. Если вам нужен один исполняемый файл с полной поддержкой консоли, используйте пользовательскую сборку, скомпилированную с флагомwindows_subsystem=console.
stringpublic static string ReadStringFromStdIn(long bufferSize = 1024);Считывает пользовательский ввод как строку в кодировке UTF-8 из стандартного ввода. Эта операция может быть блокирующей, что приводит к замораживанию окна, если OS.ReadStringFromStdIn вызывается в основном потоке.
- Если стандартный ввод — консоль, этот метод будет блокироваться до тех пор, пока программа не получит разрыв строки в стандартном вводе (обычно нажатием пользователем [kbd]Enter[/kbd]).
- Если стандартный ввод — канал, этот метод будет блокироваться до тех пор, пока не будет прочитано определенное количество данных или канал не будет закрыт.
- Если стандартный ввод — файл, этот метод прочитает определенное количество данных (или меньше, если достигнут конец файла) и немедленно вернет управление.
Примечание: Этот метод автоматически заменяет разрывы строк
\r\nна\nи удаляет их из конца строки. ИспользуйтеOS.ReadBufferFromStdInдля чтения необработанных данных. Примечание: Этот метод реализован в Linux, macOS и Windows. Примечание: В экспортированных сборках Windows запустите исполняемый файл оболочки консоли, чтобы получить доступ к терминалу. Если стандартный ввод — консоль, вызов этого метода без оболочки консоли зависнет навсегда. Если стандартный ввод — канал или файл, его можно использовать без оболочки консоли. Если вам нужен один исполняемый файл с полной поддержкой консоли, используйте пользовательскую сборку, скомпилированную с флагомwindows_subsystem=console.
| Имя | Тип | По умолчанию |
|---|---|---|
bufferSize | long | 1024 |
stringRemoveLoggervoid
public static void RemoveLogger(Logger logger);Удалить пользовательский логер, добавленный OS.AddLogger.
| Имя | Тип | По умолчанию |
|---|---|---|
logger | Logger | — |
RequestPermissionbool
public static bool RequestPermission(string name);просит разрешения у OS для данного name. Возвращение true если уже было дано разрешение. MainLoop.OnRequestPermissionsResult.
:: name должно быть полное имя разрешения.
OS.request_permission("android.permission.READ_EXTERNAL_STORAGE")OS.request_permission("android.permission.POST_NOTIFICATIONS")OS.request_permission("macos.permission.RECORD_SCREEN")OS.request_permission("appleembedded.permission.AUDIO_RECORD")Примечание: На Андроиде разрешение должно проверяться во время экспорта. Примечание: Этот метод применяется на платформах Android, MacOS и ValentOS.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
boolRequestPermissionsbool
public static bool RequestPermissions();Просьбы*, связанные с опасными* OS. Возвращение true если уже было дано разрешение. MainLoop.OnRequestPermissionsResult.
Примечание: Разрешения должны проверяться во время экспорта.
Примечание: Этот метод применяется только на Android. Обычные разрешения автоматически выдаются в момент установки Android.
boolRevokeGrantedPermissionsvoid
public static void RevokeGrantedPermissions();В macOS (только для изолированных приложений) эта функция очищает список выбранных пользователем папок, доступных приложению.
SetDeltaSmoothingvoid
public static void SetDeltaSmoothing(bool deltaSmoothingEnabled);| Имя | Тип | По умолчанию |
|---|---|---|
deltaSmoothingEnabled | bool | — |
SetEnvironmentvoid
public static void SetEnvironment(string variable, string value);Устанавливает значение переменной окружающей среды variable в адрес valueДля процесса " Reckfell " и любого процесса, осуществляемого с использованием OS.Execute после запуска OS.SetEnvironment. Изменение окружающей среды будет не сохраняться в процессах, осуществляемых после прекращения процесса " Reckfell " .
Примечание: Environment На всех платформах, кроме Windows, имена переменных чувствительны к делу. variable имя не может быть пустым или включать = на Windows установлен предел 32767 символов для совокупной длины variable, value, и = и Ненулевой терминатор символы, которые будут зарегистрированы в блоке окружающей среды.
| Имя | Тип | По умолчанию |
|---|---|---|
variable | string | — |
value | string | — |
SetLowProcessorUsageModevoid
public static void SetLowProcessorUsageMode(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetLowProcessorUsageModeSleepUsecvoid
public static void SetLowProcessorUsageModeSleepUsec(int usec);| Имя | Тип | По умолчанию |
|---|---|---|
usec | int | — |
SetRestartOnExit2 перегрузки
public static void SetRestartOnExit(bool restart, ReadOnlySpan<string> arguments);Если restart равен true, автоматически перезапускает проект при выходе из него с помощью EntityTree.Quit или Entity.NotificationWMCloseRequest. Можно указать arguments командной строки. Чтобы перезапустить проект с теми же аргументами командной строки, которые изначально использовались для запуска проекта, передайте OS.GetCmdlineArgs в качестве значения для arguments.
Этот метод можно использовать для применения изменений настроек, требующих перезапуска. См. также OS.IsRestartOnExitSet и OS.GetRestartOnExitArguments.
Примечание: Этот метод эффективен только на настольных платформах и только когда проект не запущен из редактора. Он не будет иметь никакого эффекта на мобильных и веб-платформах или когда проект запущен из редактора.
Примечание: Если процесс проекта аварийно завершается или завершен пользователем (путем отправки SIGKILL вместо обычного SIGTERM), проект не будет перезапущен автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
restart | bool | — |
arguments | ReadOnlySpan<string> | — |
public static void SetRestartOnExit(bool restart, string[] arguments = null);Если restart равен true, автоматически перезапускает проект при выходе из него с помощью EntityTree.Quit или Entity.NotificationWMCloseRequest. Можно указать arguments командной строки. Чтобы перезапустить проект с теми же аргументами командной строки, которые изначально использовались для запуска проекта, передайте OS.GetCmdlineArgs в качестве значения для arguments.
Этот метод можно использовать для применения изменений настроек, требующих перезапуска. См. также OS.IsRestartOnExitSet и OS.GetRestartOnExitArguments.
Примечание: Этот метод эффективен только на настольных платформах и только когда проект не запущен из редактора. Он не будет иметь никакого эффекта на мобильных и веб-платформах или когда проект запущен из редактора.
Примечание: Если процесс проекта аварийно завершается или завершен пользователем (путем отправки SIGKILL вместо обычного SIGTERM), проект не будет перезапущен автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
restart | bool | — |
arguments | string[] | null |
argumentsЕсли параметр не имеет значения, то значение по умолчанию: Array.Empty<string>().
SetThreadNameError
public static Error SetThreadName(string name);Назначает заданное имя текущему потоку. Возвращает ERR_UNAVAILABLE, если недоступно на текущей платформе.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
ErrorSetUseFileAccessSaveAndSwapvoid
public static void SetUseFileAccessSaveAndSwap(bool enabled);Если enabled имеет значение true, при открытии файла для записи вместо него используется временный файл. При закрытии он автоматически применяется к целевому файлу.
Это может быть полезно, когда файлы могут быть открыты другими приложениями, такими как антивирусы, текстовые редакторы или даже сам редактор Reckfell.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
ShellOpenError
public static Error ShellOpen(string uri);просит OS для открытия ресурса, выявленного uri с наиболее подходящей программой. Например:
OS.shell_open("C:\\Users\\name\\Downloads")на Windows открывает файлоразведчик в папке загрузок пользователя.OS.shell_open("C:/Users/name/Downloads")Также работает на Windows и открывает поиск файлов в папке загрузок пользователя.OS.shell_open("https://reckfellengine.org")Открыть веббраузер по умолчанию на официальном сайте Reckfell.OS.shell_open("mailto:example@example.com")открыть клиент электронной почты по умолчанию с набором поля "To"example@example.comСм. RFC 2368 - Схема почтового URL для перечня полей, которые можно добавить. ИспользованиеProjectSettings.GlobalizePathПреобразование aasset://илиuser://проектная дорожка к системной дорожке для использования этим методом. Примечание: ИспользованиеString.uri_encode, кодировать символы в URL в защищенном URL переносным способом. В противном случае,OS.ShellOpenможет не работать правильно в проекте, экспортируемом на веб-платформу. Примечание: Этот метод применяется на Android, iOS, Web, Linux, acOS и Windows.
| Имя | Тип | По умолчанию |
|---|---|---|
uri | string | — |
ErrorShellShowInFileManagerError
public static Error ShellShowInFileManager(string fileOrDirPath, bool openFolder = true);просит OS открыть файл-менеджер, перейти к данному file_or_dir_path и выбрать целевой файл или папку.
Если open_folder это true и file_or_dir_path является верным маршрутом каталога, OS Откроет файл-менеджер и введет в целевую папку, не выбирая ничего.
Использование ProjectSettings.GlobalizePath Преобразование a asset:// или user:// проектный путь к системному пути для использования с помощью этого метода.
Примечание: В настоящее время этот метод применяется только на Windows и acOS. OS.ShellOpen с помощью каталога file_or_dir_path Префиксировано file://.
| Имя | Тип | По умолчанию |
|---|---|---|
fileOrDirPath | string | — |
openFolder | bool | true |
ErrorUnsetEnvironmentvoid
public static void UnsetEnvironment(string variable);Удаляет данную среду из текущей среды, если она существует. variable имя не может быть пустым или включать = Для процесса " Reckfell " и любого процесса, осуществляемого с использованием OS.Execute после запуска OS.UnsetEnvironment. Удаление переменной окружающей среды будет не сохраняться в процессе, осуществляемом после прекращения процесса " Reckfell " .
Примечание: Environment На всех платформах, кроме Windows, имена переменных чувствительны к делу.
| Имя | Тип | По умолчанию |
|---|---|---|
variable | string | — |
OS.RenderingDriver
| Значение | Описание |
|---|---|
D3D12 = 2 | Драйвер рендеринга Direct3D 12. Для его работы требуется уровень функциональности 12_0 и поддержка Shader Модель 6.0. |
Metal = 3 | Драйвер рендеринга Metal. |
Opengl3 = 1 | Драйвер рендеринга OpenGL 3. Он использует OpenGL 3.3 Ключевой профиль на настольных платформах, OpenGL ES 3.0 на мобильных устройствах и WebGL 2.0 на веб-устройствах. |
Vulkan = 0 | Драйвер рендеринга Vulkan. Он требует поддержки Vulkan 1.0 и автоматически использует функции Vulkan 1.1, 1.2 и 1.3, если они доступны. |
OS.StdHandleType
| Значение | Описание |
|---|---|
Console = 1 | Стандартное устройство ввода-вывода — это консоль. Обычно это происходит, когда Reckfell запускается из терминала без перенаправления. Это также используется для всех стандартных устройств ввода-вывода при запуске Reckfell из редактора, по крайней мере на настольных платформах. |
File = 2 | Стандартное устройство ввода-вывода — это обычный файл. Обычно это происходит при перенаправлении с терминала, например, |
Invalid = 0 | Стандартное устройство ввода-вывода (I/O) недействительно. Невозможно получить или отправить данные с этих стандартных устройств ввода-вывода. |
Pipe = 3 | Стандартное устройство ввода-вывода — FIFO/pipe. Обычно это происходит при использовании pipe с терминала, например |
Unknown = 4 | Тип стандартного устройства ввода-вывода неизвестен. |
OS.SystemDir
| Значение | Описание |
|---|---|
Dcim = 1 | Относится к пути к каталогу DCIM (изображения с цифровой камеры). |
Desktop = 0 | Относится к пути к каталогу рабочего стола. |
Documents = 2 | Относится к пути к каталогу документов. |
Downloads = 3 | Относится к пути к каталогу загрузок. |
Movies = 4 | Относится к пути к каталогу фильмов (или видео). |
Music = 5 | Относится к пути к каталогу «Музыка». |
Pictures = 6 | Относится к пути к каталогу изображений. |
Ringtones = 7 | Относится к пути к каталогу рингтонов. |