reckfellENGINE

Файлы: asset://, user:// и проверка ошибок

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

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

Два виртуальных корня

ПутьНазначение
asset://Корень проекта рядом с project.reckfell; ресурсы игры
user://Каталог данных приложения; заметки, настройки и сохранения

Не рассчитывайте записывать в asset:// после экспорта: ресурсы могут находиться в пакете. Ресурсы движка загружайте через ResourceLoader, обычный текст — через FileAccess. Работа с исходным PNG в редакторе не доказывает, что тот же сырой файл доступен в экспортированной сборке.

Записать и прочитать короткую заметку

TextNoteStore.cs
C#
using System.Text;
using Reckfell;

public static class TextNoteStore
{
    public const string Path = "user://script-tools-note.txt";
    public const int MaximumBytes = 4096;

    public static bool TryWrite(string text, out Error error)
    {
        error = Error.InvalidParameter;
        if (Encoding.UTF8.GetByteCount(text) > MaximumBytes) return false;
        using var file = FileAccess.Open(Path, FileAccess.ModeFlags.Write);
        if (file is null)
        {
            error = FileAccess.GetOpenError();
            return false;
        }
        if (!file.StoreString(text))
        {
            error = file.GetError();
            return false;
        }
        file.Flush();
        error = file.GetError();
        return error == Error.Ok;
    }

    public static bool TryRead(out string text, out Error error)
    {
        text = "";
        using var file = FileAccess.Open(Path, FileAccess.ModeFlags.Read);
        if (file is null)
        {
            error = FileAccess.GetOpenError();
            return false;
        }
        if (file.GetLength() > MaximumBytes)
        {
            error = Error.InvalidData;
            return false;
        }
        string candidate = file.GetAsText();
        error = file.GetError();
        if (error != Error.Ok && error != Error.FileEof) return false;
        text = candidate;
        error = Error.Ok;
        return true;
    }
}

Путь фиксирован: user://script-tools-note.txt. Лимит 4096 считается в байтах UTF-8, а не в символах. Слишком большой текст отвергается до открытия на запись, поэтому предыдущая заметка сохраняется. TryRead проверяет размер до чтения.

Если Open вернул null, сразу получите GetOpenError. Запись в режиме Write заменяет содержимое; это простой текстовый пример, не атомарная система сохранения прогресса. Для неё используйте отдельную схему сохранения.

Системные пути и перенос файлов

ProjectSettings.GlobalizePath раскрывает asset:// и user:// в системный путь, например для внешнего инструмента. LocalizePath преобразует путь внутри проекта в asset://; не считайте его универсальной обратной операцией для каталога user://.

Авторские .rscene, .rprefab, .rdata и связанные UID-файлы относятся к исходным данным. .reckfell содержит производный кэш. Утверждение «движок не использует метаданные» здесь неверно: не выбрасывайте UID и импортные сведения при переносе ресурсов.

Запустить пример · Структура проекта

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

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

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

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