使用此 API 在项目中执行搜索。此类型搜索的引擎实现了 IProjectSearchEngine 接口。
在项目浏览器中搜索时,会调用注册的项目搜索引擎。当使用默认对象选择器时,也会为资源搜索调用它们。
以下示例创建了一个项目搜索引擎
using System; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEditor.SearchService; using UnityEngine; using Object = UnityEngine.Object;
[ProjectSearchEngine] class TestProjectSearchEngine : IProjectSearchEngine { public string name => "My Custom Engine";
public void BeginSession(ISearchContext context) { }
public void EndSession(ISearchContext context) { }
public void BeginSearch(ISearchContext context, string query) { }
public void EndSearch(ISearchContext context) { }
public IEnumerable<string> Search(ISearchContext context, string query, Action<IEnumerable<string>> asyncItemsReceived) { var allPaths = AssetDatabase.GetAllAssetPaths(); var filteredPaths = allPaths.Where(path => !path.StartsWith("Library")).Where(path => path.IndexOf(query, StringComparison.InvariantCultureIgnoreCase) >= 0).ToList(); return filteredPaths; } }
EngineScope | 一个枚举,指示 ProjectSearch 引擎的搜索范围。它由 ProjectSearchContext 使用。 |
RegisterEngine | 动态注册项目搜索引擎。 |
UnregisterEngine | 注销动态注册的引擎。 |