This commit is contained in:
DCFApixels 2025-07-14 21:10:57 +08:00
parent cfc1ffe9a6
commit e4dc76e037
2 changed files with 11 additions and 8 deletions

View File

@ -368,7 +368,7 @@ namespace DCFApixels.DragonECS
} }
} }
EcsPipeline pipeline = new EcsPipeline(allSystems, Configs.Instance.GetContainer(), Injections.Instance); EcsPipeline pipeline = new EcsPipeline((ReadOnlySpan<IEcsProcess>)allSystems, Configs.Instance.GetContainer(), Injections.Instance);
foreach (var item in _initDeclaredRunners) foreach (var item in _initDeclaredRunners)
{ {
item.Declare(pipeline); item.Declare(pipeline);

View File

@ -78,10 +78,14 @@ namespace DCFApixels.DragonECS
#endregion #endregion
#region Constructors #region Constructors
public EcsPipeline(IEnumerable<IEcsProcess> systems, IConfigContainer configs = null, Injector.InjectionList injectionList = null) public EcsPipeline(ReadOnlySpan<IEcsProcess> systems, IConfigContainer configs = null, Injector.InjectionList injectionList = null) :
this(systems.ToArray(), configs, injectionList)
{ }
public EcsPipeline(IEnumerable<IEcsProcess> systems, IConfigContainer configs = null, Injector.InjectionList injectionList = null) :
this(systems.ToArray(), configs, injectionList)
{ }
private EcsPipeline(IEcsProcess[] systems, IConfigContainer configs, Injector.InjectionList injectionList)
{ {
if(systems == null) { Throw.ArgumentNull(nameof(systems)); }
if (configs == null) if (configs == null)
{ {
configs = new ConfigContainer(); configs = new ConfigContainer();
@ -92,7 +96,7 @@ namespace DCFApixels.DragonECS
} }
_configs = configs; _configs = configs;
_allSystems = systems.ToArray(); _allSystems = systems;
var members = GetProcess<IEcsPipelineMember>(); var members = GetProcess<IEcsPipelineMember>();
for (int i = 0; i < members.Length; i++) for (int i = 0; i < members.Length; i++)
@ -103,7 +107,6 @@ namespace DCFApixels.DragonECS
_injector = new Injector(this); _injector = new Injector(this);
injectionList.InitInjectTo(_injector, this); injectionList.InitInjectTo(_injector, this);
} }
~EcsPipeline() ~EcsPipeline()
{ {
if (_isDestoryed) { return; } if (_isDestoryed) { return; }