Version: 2022.3
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 Search context to start with.
selectHandler Callback invoked when an item is selected.
trackingHandler Callback invoked when an item is clicked without it being the final selection.
filterHandler Callback invoked to filter search item results to display.
title Topic to search.
itemSize Initial result view item size.
defaultWidth Initial width of the window.
defaultHeight Initial height of the window.
subset Initial set of items to be searched.
flags Options defining how the query is performed.

返回

ISearchView Creates a new search window.

描述

Open a search item picker window.


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

参数

viewState Search view state used to open the Search Picker window.

返回

ISearchView Creates a new search window.

描述

Open a Search Picker window.

This example shows how to open a custom search picker to pick a decal material.

var selectHandler = args.selectorClosedHandler;
var trackingHandler = args.trackingHandler;
var query = SearchService.CreateContext(CreateDecalProvider(), $"a={dbName} t={selectContext.requiredTypeNames.First()} shader=Decal");
var viewState = new SearchViewState(query, CreateDecalsTableConfiguration(),
    SearchViewFlags.TableView |
    SearchViewFlags.OpenInBuilderMode |
    SearchViewFlags.DisableSavedSearchQuery);
viewState.windowTitle = new GUIContent("Material Decals", GetMaterialIcon());
viewState.hideAllGroup = true;
viewState.title = "decals";
viewState.selectHandler = (item, canceled) => selectHandler(item?.ToObject(), canceled);
viewState.trackingHandler = (item) => trackingHandler(item?.ToObject());
viewState.position = SearchUtils.GetMainWindowCenteredPosition(new Vector2(600, 400));
SearchService.ShowPicker(viewState);