Version: Unity 6.0 (6000.0)
语言 : 中文
SearchProvider 类
执行搜索

注册搜索提供程序

要添加新的搜索提供程序,请创建一个函数并用 SearchItemProvider 属性对其进行标记,如下面的示例所示:

[SearchItemProvider]
internal static SearchProvider CreateProvider()
{
    return new SearchProvider(type, displayName)
    {
        filterId = "me:",
        fetchItems = (context, items, provider) =>
        {
            var itemNames = new List<string>();
            var shortcuts = new List<string>();
            GetMenuInfo(itemNames, shortcuts);

            items.AddRange(itemNames.Where(menuName =>
                    SearchProvider.MatchSearchGroups(context.searchText, menuName))
                .Select(menuName => provider.CreateItem(menuName,
                                            Path.GetFileName(menuName), menuName)));
        },

        fetchThumbnail = (item, context) => Icons.shortcut
    };
}
  • 该函数必须返回新的 SearchProvider 实例。
  • SearchProvider 实例必须具有以下属性:
  • 唯一的 type。例如,资源 (Asset)菜单 (Menu)场景 (Scene)
  • 要在过滤器 (Filters) 面板中使用的 displayName
  • 可选的 filterId基于文本的过滤提供了一个搜索标记。例如,p:资源搜索的过滤器 ID。

注册搜索提供程序快捷键

要为新的提供程序注册快捷键,请使用:

[UsedImplicitly, Shortcut("Help/Quick Search/Assets")]
private static void PopQuickSearch()
{
    // Open Search with only the "Asset" provider enabled.
    SearchService.ShowContextual("asset");
}

您可以使用快捷键管理器将快捷键映射到键或键组合。

SearchProvider 类
执行搜索