add search for query monitor

This commit is contained in:
Mikhail 2026-04-01 16:13:08 +08:00
parent b38915c75c
commit 6f97e7232a
2 changed files with 35 additions and 2 deletions

View File

@ -107,6 +107,7 @@ namespace DCFApixels.DragonECS.Unity.Editors
GUIUtility.systemCopyBuffer = sb.ToString(); GUIUtility.systemCopyBuffer = sb.ToString();
} }
public bool HasSearchPattern = false;
protected override void DrawCustom() protected override void DrawCustom()
{ {
if (_headerStyle == null) if (_headerStyle == null)
@ -126,17 +127,48 @@ namespace DCFApixels.DragonECS.Unity.Editors
} }
EditorGUILayout.IntField("Count: ", executors.Count); EditorGUILayout.IntField("Count: ", executors.Count);
HasSearchPattern = true;
if (string.IsNullOrEmpty(Target.SearchPattern))
{
Target.SearchPattern = string.Empty;
HasSearchPattern = false;
}
Target.SearchPattern = EditorGUILayout.TextField("Search: ", Target.SearchPattern);
string searchPattern = Target.SearchPattern;
GUILayout.Space(20); GUILayout.Space(20);
//using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetStyle(Color.black, 0.2f))) //using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetStyle(Color.black, 0.2f)))
{ {
int i = 0; int i = 0;
foreach (var executor in executors) foreach (var executor in executors)
{
bool cheack(ReadOnlySpan<Type> types, string searchPattern)
{
foreach (var type in types)
{
if(type.Name.Contains(searchPattern, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
return false;
}
if (!HasSearchPattern ||
cheack(executor.Mask.GetIncTypes_Debug(), searchPattern) ||
cheack(executor.Mask.GetExcTypes_Debug(), searchPattern) ||
cheack(executor.Mask.GetAnyTypes_Debug(), searchPattern))
{ {
DrawQueryInfo(executor, i++); DrawQueryInfo(executor, i++);
} }
} }
} }
}
public static Color GetGenericPanelColor(int index) public static Color GetGenericPanelColor(int index)
{ {
return (index & 1) == 0 ? new Color(0, 0, 0, 0) : new Color(0.4f, 0.4f, 0.4f, 0.2f); return (index & 1) == 0 ? new Color(0, 0, 0, 0) : new Color(0.4f, 0.4f, 0.4f, 0.2f);
@ -145,6 +177,7 @@ namespace DCFApixels.DragonECS.Unity.Editors
{ {
//GUILayout.Space(10f); //GUILayout.Space(10f);
//using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetStyle(GetGenericPanelColor(index)))) //using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetStyle(GetGenericPanelColor(index))))
using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetTransperentBlackBackgrounStyle())) using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetTransperentBlackBackgrounStyle()))
{ {

View File

@ -14,7 +14,7 @@ namespace DCFApixels.DragonECS.Unity.Internal
private EcsWorld _world; private EcsWorld _world;
private List<MaskQueryExecutor> _maskQueryExecutors = new List<MaskQueryExecutor>(); private List<MaskQueryExecutor> _maskQueryExecutors = new List<MaskQueryExecutor>();
private int _maskQueryExecutorsVersion = 0; private int _maskQueryExecutorsVersion = 0;
public string SearchPattern;
public EcsWorld World public EcsWorld World
{ {
get { return _world; } get { return _world; }