From ac2a9759e18a256a36243644497988665a9bdb66 Mon Sep 17 00:00:00 2001 From: GeWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Sun, 8 Mar 2026 20:38:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ArchEcsModule):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E9=80=82=E9=85=8D=E5=99=A8=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 _systems 字段类型从 List 改为 IReadOnlyList - 使用 GetAllByPriority 方法按优先级获取适配器 - 移除手动 AddRange 操作,直接赋值适配器列表 - 销毁时将 _systems 设置为空数组而非 Clear() 操作 --- GFramework.Ecs.Arch/ArchEcsModule.cs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/GFramework.Ecs.Arch/ArchEcsModule.cs b/GFramework.Ecs.Arch/ArchEcsModule.cs index 7c93b4c..bbbdb94 100644 --- a/GFramework.Ecs.Arch/ArchEcsModule.cs +++ b/GFramework.Ecs.Arch/ArchEcsModule.cs @@ -8,9 +8,9 @@ namespace GFramework.Ecs.Arch; /// public sealed class ArchEcsModule : IArchEcsModule { - private readonly List> _systems = []; private IIocContainer? _container; private bool _isInitialized; + private IReadOnlyList> _systems = []; private World? _world; /// @@ -67,17 +67,13 @@ public sealed class ArchEcsModule : IArchEcsModule return; } - // 从容器获取所有适配器 - var adapters = _container.GetAll>(); - if (adapters.Count > 0) - { - _systems.AddRange(adapters); + // 从容器按优先级获取所有适配器 + _systems = _container.GetAllByPriority>(); - // 初始化所有系统(会调用 Arch 系统的 Initialize) - foreach (var system in _systems) - { - system.Initialize(); - } + // 初始化所有系统(会调用 Arch 系统的 Initialize) + foreach (var system in _systems) + { + system.Initialize(); } _isInitialized = true; @@ -99,7 +95,7 @@ public sealed class ArchEcsModule : IArchEcsModule system.Destroy(); } - _systems.Clear(); + _systems = []; // 销毁 World if (_world != null)