update EcsRootUnity

This commit is contained in:
Mikhail 2024-10-19 00:45:22 +08:00
parent d5f6295e59
commit b891d1e05a
3 changed files with 18 additions and 8 deletions

View File

@ -1,4 +1,6 @@
using System.Collections.Generic; using DCFApixels.DragonECS.Unity;
using DCFApixels.DragonECS.Unity.Internal;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
@ -9,6 +11,8 @@ namespace DCFApixels.DragonECS
[AddComponentMenu(EcsConsts.FRAMEWORK_NAME + "/" + nameof(EcsRootUnity), 30)] [AddComponentMenu(EcsConsts.FRAMEWORK_NAME + "/" + nameof(EcsRootUnity), 30)]
public class EcsRootUnity : MonoBehaviour public class EcsRootUnity : MonoBehaviour
{ {
[SerializeField]
private bool _enablePipelineDebug = true;
[SerializeField] [SerializeField]
private ScriptablePipelineTemplateBase[] _scriptableTemplates; private ScriptablePipelineTemplateBase[] _scriptableTemplates;
[SerializeField] [SerializeField]
@ -46,6 +50,13 @@ namespace DCFApixels.DragonECS
if (template == null) { continue; } if (template == null) { continue; }
pipelineBuilder.Add(template); pipelineBuilder.Add(template);
} }
#if UNITY_EDITOR
if (_enablePipelineDebug)
{
pipelineBuilder.Layers.Insert(EcsConsts.POST_END_LAYER, EcsUnityConsts.DEBUG_LAYER);
pipelineBuilder.AddUnique(new PipelineMonitorSystem(), EcsUnityConsts.DEBUG_LAYER);
}
#endif
_pipeline = pipelineBuilder.BuildAndInit(); _pipeline = pipelineBuilder.BuildAndInit();
} }

View File

@ -7,22 +7,21 @@ namespace DCFApixels.DragonECS
[MetaGroup(EcsUnityConsts.PACK_GROUP, EcsConsts.DEBUG_GROUP)] [MetaGroup(EcsUnityConsts.PACK_GROUP, EcsConsts.DEBUG_GROUP)]
[MetaDescription(EcsConsts.AUTHOR, "...")] [MetaDescription(EcsConsts.AUTHOR, "...")]
[MetaID("1D16B980920108B62A0971E4058A3E01")] [MetaID("1D16B980920108B62A0971E4058A3E01")]
public sealed class DebugModule : IEcsModule public sealed class UnityDebugModule : IEcsModule
{ {
public const string DEBUG_LAYER = EcsUnityConsts.DEBUG_LAYER;
public EcsWorld[] _worlds; public EcsWorld[] _worlds;
public DebugModule(params EcsWorld[] worlds) public UnityDebugModule(params EcsWorld[] worlds)
{ {
_worlds = worlds; _worlds = worlds;
} }
void IEcsModule.Import(EcsPipeline.Builder b) void IEcsModule.Import(EcsPipeline.Builder b)
{ {
UnityDebugService.Activate(); UnityDebugService.Activate();
b.Layers.Insert(EcsConsts.POST_END_LAYER, DEBUG_LAYER); b.Layers.Insert(EcsConsts.POST_END_LAYER, EcsUnityConsts.DEBUG_LAYER);
b.AddUnique(new PipelineMonitorSystem(), DEBUG_LAYER); b.AddUnique(new PipelineMonitorSystem(), EcsUnityConsts.DEBUG_LAYER);
foreach (var world in _worlds) foreach (var world in _worlds)
{ {
b.Add(new WorldMonitorSystem(world), DEBUG_LAYER); b.Add(new WorldMonitorSystem(world), EcsUnityConsts.DEBUG_LAYER);
} }
} }
} }
@ -31,7 +30,7 @@ namespace DCFApixels.DragonECS
{ {
public static EcsPipeline.Builder AddUnityDebug(this EcsPipeline.Builder self, params EcsWorld[] worlds) public static EcsPipeline.Builder AddUnityDebug(this EcsPipeline.Builder self, params EcsWorld[] worlds)
{ {
self.AddModule(new DebugModule(worlds)); self.AddModule(new UnityDebugModule(worlds));
return self; return self;
} }
} }