This version of Unity is unsupported.

SearchFlags.WantsMore

Description

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));
        }
    }
}