主要的搜索 API,用于启动搜索和获取结果。
请务必查看 SearchService.Request,了解执行搜索请求的所有不同方法的完整列表。
using System.Linq; using System.Collections.Generic; using UnityEditor; using UnityEditor.Search; using UnityEngine; static class Example_SearchService { [MenuItem("Examples/SearchService/Class")] public static void Run() { void OnSearchCompleted(SearchContext context, IList<SearchItem> items) { foreach (var item in items) Debug.Log(item); } SearchService.Request("*.cs", OnSearchCompleted); } [MenuItem("Examples/SearchService/Providers")] public static void RunProviders() { // Print special search providers foreach (var provider in SearchService.Providers.Where(p => p.isExplicitProvider)) Debug.Log($"Special Search Provider {provider.name} ({provider.id})"); } [MenuItem("Examples/SearchService/OrderedProviders")] public static void RunOrderedProviders() { // Print providers by their search priority when a query is executed. foreach (var provider in SearchService.OrderedProviders) Debug.Log($"[{provider.priority}] {provider.name} ({provider.id})"); } }
OrderedProviders | 返回按优先级排序的搜索提供者列表。 |
Providers | 返回所有搜索提供者列表(无论是活动还是非活动)。 |
CreateContext | 从搜索提供者 ID 列表创建上下文。 |
CreateIndex | 创建一个新的搜索索引。 |
EnumerateDatabases | 枚举搜索数据库。 |
GetAction | 返回给定搜索提供者和搜索操作 ID 的搜索操作。 |
GetActiveProviders | 返回所有活动提供者。 |
GetItems | 启动搜索并返回与搜索上下文匹配的所有搜索项目。其他项目可以使用异步搜索稍后找到。 |
GetProvider | 返回给定 ID 的搜索提供者的数据。 |
IsIndexReady | 指示搜索索引是否已准备好使用。 |
Refresh | 清除所有内容并重新加载所有搜索提供者。请谨慎使用。在单元测试中很有用。 |
RefreshWindows | 刷新所有当前打开的搜索窗口。 |
Request | 执行一个异步获取搜索结果的搜索请求。 |
SetActive | 激活或停用搜索提供者。在执行此操作后调用 Refresh 才能在下次搜索时生效。 |
ShowContextual | 使用特定上下文打开搜索窗口(激活特定过滤器)。 |
ShowObjectPicker | 打开 Unity 对象的搜索选择器窗口。 |
ShowPicker | 打开搜索项目选择器窗口。 |
ShowWindow | 创建一个新的搜索窗口。 |