ecsproto.conditionalsystems

0
README.md

Logo

Группировка систем в блоки с условным выполнением

Поддержка группировки систем в исполняемые по условию блоки для LeoECS Proto.

ВАЖНО! Требует C#9 (или Unity >=2021.2).

ВАЖНО! Зависит от: Leopotam.EcsProto, Leopotam.EcsProto.QoL.

ВАЖНО! Не забывайте использовать

DEBUG
-версии билдов для разработки и
RELEASE
-версии билдов для релизов: все внутренние проверки/исключения будут работать только в
DEBUG
-версиях и удалены для увеличения производительности в
RELEASE
-версиях.

ВАЖНО! Проверено на Unity 2021.3 (не зависит от нее) и содержит asmdef-описания для компиляции в виде отдельных сборок и уменьшения времени рекомпиляции основного проекта.

Социальные ресурсы

Официальный блог: https://leopotam.ru

Установка

В виде unity модуля

Поддерживается установка в виде unity-модуля через git-ссылку в PackageManager или прямое редактирование

Packages/manifest.json
:

"ru.leopotam.ecsproto.conditionalsystems": "https://gitverse.ru/leopotam/ecsproto.conditionalsystems.git",

В виде исходников

Код так же может быть склонирован или получен в виде архива со страницы релизов.

Прочие источники

Официальная работоспособная версия размещена по адресу https://gitverse.ru/leopotam/ecsproto.conditionalsystems, все остальные версии (включая nuget, npm и прочие репозитории) являются неофициальными клонами или сторонним кодом с неизвестным содержимым.

Основные типы

Solver

Пользовательский класс, определяющий, будет исполняться группа систем или нет. Класс должен реализовать интерфейс

IConditionalSystemSolver
:

ВАЖНО! Поддерживается инъекция аспектов, сервисов и итераторов в поля экземпляра через пометку атрибутом

[DI]
. Для разрешения инъекции надо явно указать флаг при инициализации
ConditionalSystem
, подключение модуля
AutoInjectModule
не влияет на этот процесс.

ConditionalSystem

Система, представляющая собой контейнер по типу

ProtoSystems
и позволяющая выполнять или пропускать выполнение
IProtoRunSystem
-систем, которые были в нее вложены:

Лицензия

Расширение выпускается под лицензией MIT-ZARYA, подробности тут.