reckfellENGINE

Где хранить состояние: Entity, Resource или Autoload

Выбрать время жизни данных и место их изменения; общая сессия не должна владеть всем проектом.

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

Сначала определить время жизни

Данные/поведениеПодходящее место
Здоровье одного противника, локальная анимацияEntity/компонент внутри его префаба
Цель миссии, список противников текущего уровняКонтроллер уровня
Счёт забега, переходящий между уровнямиЯвная служба сессии вне заменяемого корня, например Autoload
Настраиваемое описание оружия или материалаResource с понятной политикой общего доступа
Данные, переживающие закрытие игрыСериализованная схема в user://

Autoload — способ создать объект при запуске и пережить замену CurrentScene, а не обязательное место для каждого менеджера. Долгоживущий объект можно организовать и через постоянный корень приложения. Выбор должен делать время жизни явным.

Ограничить место изменения

SessionState разрешает AddCoins/ResetRun и сообщает CoinsChanged. HUD отображает данные и снимает подписку при выходе. Служба не знает путь до интерфейса; уровень не должен напрямую переписывать случайные внутренние поля службы.

Для локального поведения GroupTarget2D работает без GetParent и без глобального сервиса: внешний контроллер передаёт действие ApplyDamage. Стенд проверяет создание отдельного получателя без родителя. Группа при этом остаётся динамическим набором, а не типобезопасным интерфейсом.

Что не решает выбор контейнера

Resource может быть общим у нескольких экземпляров. Не складывайте изменяемое здоровье каждого противника в один общий конфигурационный ресурс, если не хотите общий результат. Для копирования и загрузки см. Resource.

Autoload не делает данные сохранёнными на диск, потокобезопасными или защищёнными от второго экземпляра класса. Отключение _Process не блокирует его методы. Сетевую авторитетность и проверку команд также задаёт логика приложения.

Проверить выбранную границу

  1. Создать компонент отдельно от большого уровня: он работает или явно сообщает, какая зависимость нужна.
  2. Удалить и пересоздать уровень: локальные данные сбрасываются, сессия сохраняется только там, где задумано.
  3. Отсоединить и вернуть HUD: обновление приходит один раз, начальное значение перечитывается.
  4. Начать новый забег: общие данные сбрасываются явной командой, а не случайной перезагрузкой уровня.

Эти случаи выполнены на примерах SessionState/SessionHud и GroupTarget2D. Они подтверждают границы конкретных компонентов, а не универсальное преимущество одного архитектурного шаблона.

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

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

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

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