Авто обработчики

По умолчанию при добавлении или удалении компонента данные заполняются дефолтным значение, а при копировании компонент полностью копируется
Чтобы установить свою логику дефолтной инициализации и сброса компонента можно воспользоваться обработчиками


Пример:

MyEcs.Create(EcsConfig.Default());
//...
MyEcs.World.RegisterComponentType<Position>(
                autoInit: static (ref Position position) => position.Val = Vector3.One, // заменяет поведение при создании компонента через метод Add
                autoReset: static (ref Position position) => position.Val = Vector3.One, // заменяет поведение при удалении компонента через метод Delete
                autoCopy: static (ref Position src, ref Position dst) => dst.Val = src.Val, // заменяет поведение при копировании компонента
            );
//...
MyEcs.Initialize();

Стоит учитывать что создание сущности с установкой значения или добавления компонента через метод Put
полностью заменяют данные в компоненте, в обход установленных авто обработчиков