DragonECS-Unity/src/Debug/DebugModule.cs

34 lines
990 B
C#
Raw Normal View History

2024-03-10 04:56:29 +08:00
using DCFApixels.DragonECS.Unity.Internal;
namespace DCFApixels.DragonECS
2023-04-26 16:54:27 +08:00
{
public sealed class DebugModule : IEcsModule
{
2023-05-07 00:50:44 +08:00
public const string DEBUG_LAYER = nameof(DEBUG_LAYER);
2023-04-26 16:54:27 +08:00
public EcsWorld[] _worlds;
public DebugModule(params EcsWorld[] worlds)
{
_worlds = worlds;
}
2023-05-30 18:31:03 +08:00
void IEcsModule.Import(EcsPipeline.Builder b)
2023-04-26 16:54:27 +08:00
{
2024-03-10 04:56:29 +08:00
UnityDebugService.Activate();
2023-05-07 00:50:44 +08:00
b.Layers.Insert(EcsConsts.POST_END_LAYER, DEBUG_LAYER);
2024-03-10 04:56:29 +08:00
b.Add(new PipelineMonitorSystem(), DEBUG_LAYER);
2023-04-26 16:54:27 +08:00
foreach (var world in _worlds)
{
2024-03-10 04:56:29 +08:00
b.Add(new WorldMonitorSystem(world), DEBUG_LAYER);
2023-04-26 16:54:27 +08:00
}
}
}
2024-03-10 04:56:29 +08:00
public static class DebugModuleExt
{
public static EcsPipeline.Builder AddUnityDebug(this EcsPipeline.Builder self, params EcsWorld[] worlds)
{
self.AddModule(new DebugModule(worlds));
return self;
}
}
2023-04-26 16:54:27 +08:00
}