context | The current search context. |
options | Options defining how the query is performed. |
List<SearchItem> A list of search items matching the search query.
Initiates a search and returns all search items matching the search context. Other items can be found later using asynchronous searches.
Unity suggests using SearchService.Request to execute a search query. GetItems
usually requires setting up more context to achieve a good result. The following is a small example that uses GetItems
.
using System.Collections.Generic; using UnityEditor; using UnityEditor.Search; using UnityEngine; static class Example_SearchService_GetItems { [MenuItem("Examples/SearchService/GetItems")] public static void Run() { // Create a container to hold found items. var results = new List<SearchItem>(); // Create the search context that will be used to execute the query. using (var searchContext = SearchService.CreateContext("scene", "is:leaf")) { // Set up a callback that will be used gather additional asynchronous results. searchContext.asyncItemReceived += (context, incomingItems) => results.AddRange(incomingItems); // Initiate the query and get the first results. results.AddRange(SearchService.GetItems(searchContext, SearchFlags.WantsMore)); // ***IMPORTANT***: Wait for the search to finish. Note that often times, a search // provider will need to be ticked by EditorApplication to yieled new search items. Unity doesn't recommends // to do an active wait on the main thread to process search results. while (searchContext.searchInProgress) ; // Print results foreach (var searchItem in results) Debug.Log(searchItem.GetDescription(searchContext)); } } }