Sets the search to search for all results. This might take longer than unusual if SearchProvider are using multiple sources of items (files on disk, AssetDatabase...)
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)); } } }