From 1aecb54964955c13c88454aff36e33b0026b9747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=AC=E6=98=A5=E9=B9=8F?= Date: Thu, 5 Jun 2025 09:22:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=96=87=E5=AD=97=E9=A2=9C?= =?UTF-8?q?=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssetBundleCollectorWindow.cs | 40 ++++++++++++++----- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs index 52d546a3..3816ddb6 100644 --- a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs +++ b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs @@ -27,6 +27,7 @@ namespace YooAsset.Editor private EViewMode _viewMode; private string _searchKey; + private string _lowerSearchKey; private ToolbarSearchField _searchField; @@ -379,6 +380,7 @@ namespace YooAsset.Editor private void OnSearchFieldValueChanged(ChangeEvent evt) { _searchKey = evt.newValue; + _lowerSearchKey = evt.newValue.ToLower(); if (string.IsNullOrWhiteSpace(evt.newValue)) { @@ -486,6 +488,28 @@ namespace YooAsset.Editor return ruleDisplayName.ClassName; } + private string ConvertText(string str) + { + if (_viewMode == EViewMode.Search) + { + if (str.ToLower().Contains(_lowerSearchKey)) + { + int startIndex = str.ToLower().IndexOf(_lowerSearchKey); + while (startIndex >= 0) + { + string before = str.Substring(0, startIndex); + string match = str.Substring(startIndex, _lowerSearchKey.Length); + string after = str.Substring(startIndex + _lowerSearchKey.Length); + str = $"{before}{match}{after}"; + startIndex = str.ToLower().IndexOf(_lowerSearchKey, startIndex + 20); // 20是的长度 + } + return str; + } + } + + return str; + } + // 设置栏相关 private void RefreshSettings() { @@ -595,12 +619,10 @@ namespace YooAsset.Editor { packages = new List(); - var lowerSearchKey = _searchKey.ToLower(); - foreach (var package in AssetBundleCollectorSettingData.Setting.Packages) { //检查packageName - if (package.PackageName.ToLower().Contains(lowerSearchKey)) + if (package.PackageName.ToLower().Contains(_lowerSearchKey)) { packages.Add(package); continue; @@ -609,13 +631,13 @@ namespace YooAsset.Editor //检查Groups和GroupAssetTags foreach (var group in package.Groups) { - if (group.GroupName.ToLower().Contains(lowerSearchKey)) + if (group.GroupName.ToLower().Contains(_lowerSearchKey)) { packages.Add(package); break; } - if (group.AssetTags.ToLower().Contains(lowerSearchKey)) + if (group.AssetTags.ToLower().Contains(_lowerSearchKey)) { packages.Add(package); break; @@ -626,13 +648,13 @@ namespace YooAsset.Editor //检查Collectors和tags foreach (var collector in group.Collectors) { - if (collector.CollectPath.ToLower().Contains(lowerSearchKey)) + if (collector.CollectPath.ToLower().Contains(_lowerSearchKey)) { needAdd = true; break; } - if (collector.AssetTags.ToLower().Contains(lowerSearchKey)) + if (collector.AssetTags.ToLower().Contains(_lowerSearchKey)) { needAdd = true; break; @@ -678,9 +700,9 @@ namespace YooAsset.Editor var textField1 = element.Q