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