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();
}
public bool HasSearchPattern = false;
protected override void DrawCustom()
{
if (_headerStyle == null)
@ -126,6 +127,20 @@ namespace DCFApixels.DragonECS.Unity.Editors
}
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);
//using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetStyle(Color.black, 0.2f)))
@ -133,7 +148,24 @@ namespace DCFApixels.DragonECS.Unity.Editors
int i = 0;
foreach (var executor in executors)
{
DrawQueryInfo(executor, i++);
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++);
}
}
}
}
@ -145,6 +177,7 @@ namespace DCFApixels.DragonECS.Unity.Editors
{
//GUILayout.Space(10f);
//using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetStyle(GetGenericPanelColor(index))))
using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetTransperentBlackBackgrounStyle()))
{

View File

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