Интеграция в редактор Unity для конвертации Unity в ECS
Интеграция вдохновлена UniLeo-Lite от Voody
Discord Группа по LeoEcsLite
Telegram Группа по Ecs
ВАЖНО! Зависит от LeoECS Lite - фреймворк должен быть установлен до этого расширения.
Поддерживается установка в виде unity-модуля через git-ссылку в PackageManager или прямое редактирование Packages/manifest.json:
"com.mitfart.leoecslite.unileo": "https://github.com/Mitfart/LeoECSLite.UniLeo.git",
Код так же может быть склонирован или получен в виде архива со страницы релизов.
_systems = new EcsSystems(world);
_systems
...
.Add(new ConvertSceneSys())
.Init();ВАЖНО Обратите внимание что система подключается САМОЙ последней
Для отображения компонента в редакторе, необходимо создать Провайдер
(Провайдер - MonoBehaviour, наследующий IConvertToEntity)
Самы простой способ это:
public sealed class CompProvider : EcsProvider<Comp>{ }
[Serializable] // <-- Обязательный аттрибут, для отображения в инспекторе
public struct Comp {
public string value;
}Также можно создавать свои "Провайдеры":
// -- 1 СПОСОБ -- //
// Override стандартный
public sealed class CompProvider_V1 : EcsProvider<Comp>{
public override void Convert(int e, EcsWorld world){
component = new Comp();
base.Convert(e, world);
}
}
// -- 2 СПОСОБ -- //
// Унаследовать BaseEcsProvider или IConvertToEntity
public sealed class CompProvider_V2 : BaseEcsProvider {
public override void Convert(int e, EcsWorld world){
...
}
}