版本:Unity 6(6000.0)
语言英语
  • C#

SearchService.ShowPicker

提出建议

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提交更改,但我们会阅读用户提出的每一项建议更改,并在必要时进行更新。

关闭

提交失败

由于某种原因,您建议的更改无法提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

声明

public static Search.ISearchView ShowPicker(Search.SearchContext context, Action<SearchItem,bool> selectHandler, Action<SearchItem> trackingHandler, Func<SearchItem,bool> filterHandler, IEnumerable<SearchItem> subset, string title, float itemSize, float defaultWidth, float defaultHeight, Search.SearchFlags flags);

参数

context 要从中开始的搜索上下文。
selectHandler 当某个项目被选中时调用的回调。
trackingHandler 当某个项目被点击但未作为最终选择时调用的回调。
filterHandler 调用以筛选要显示的搜索项目结果的回调。
title 要搜索的主题。
itemSize 初始结果视图项目大小。
defaultWidth 窗口初始宽度。
defaultHeight 窗口初始高度。
subset 要搜索的初始项目集合。
flags 定义如何执行查询的选项。

返回值

ISearchView 创建一个新的搜索窗口。

说明

打开搜索项目选择器窗口。


声明

public static Search.ISearchView ShowPicker(Search.SearchViewState viewState);

参数

viewState 用于打开搜索选择器窗口的搜索视图状态。

返回值

ISearchView 创建一个新的搜索窗口。

说明

打开一个搜索选择器窗口。

此示例展示了如何打开一个自定义搜索选择器来选择贴花材质。

using UnityEditor;
using UnityEditor.Search;
using UnityEngine;
using UnityEngine.Search;

static class Example_SearchService_ShowPicker
{
    [MenuItem("Examples/SearchService/ShowPicker")]
    public static void Run()
    {
        var context = SearchService.CreateContext("asset", "t:material");
        var viewState = new SearchViewState(context,
            SearchViewFlags.GridView |
            SearchViewFlags.OpenInBuilderMode |
            SearchViewFlags.DisableSavedSearchQuery)
        {
            windowTitle = new GUIContent("Material Selector"),
            title = "Material",
            selectHandler = SelectHandler,
            trackingHandler = TrackingHandler,
            position = SearchUtils.GetMainWindowCenteredPosition(new Vector2(600, 400))
        };
        SearchService.ShowPicker(viewState);
    }

    static void SelectHandler(SearchItem searchItem, bool canceled)
    {
        Debug.Log($"Selected {searchItem} (canceled: {canceled})");
    }

    static void TrackingHandler(SearchItem searchItem)
    {
        Debug.Log($"Tracking {searchItem}");
    }
}