# Project

> Use this API to perform searches in the Project. Engines for this type of search implement the IProjectSearchEngine interface.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.SearchService](/engine/6000.6/script-reference/unityeditor/searchservice.md)
* **Assembly:** UnityEditor.CoreModule

> **Warning:**
>
> **Removed.** Project has been deprecated. Use ProjectSearch instead
>
> **Upgrade to** [ProjectSearch](/engine/6000.6/script-reference/unityeditor/searchservice/projectsearch.md)

```csharp
public static class Project
```

## Remarks

Registered Project engines are called during searches in the Project browser. When the default object selector is used, they are also called for Asset searches.

The following example creates a Project engine:

```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEditor.SearchService;
using UnityEngine;
using Object = UnityEngine.Object;

[ProjectSearchEngine]
class TestProjectSearchEngine : IProjectSearchEngine
{
    public string name => "My Custom Engine";

    public void BeginSession(ISearchContext context)
    {
    }

    public void EndSession(ISearchContext context)
    {
    }

    public void BeginSearch(ISearchContext context, string query)
    {
    }

    public void EndSearch(ISearchContext context)
    {
    }

    public IEnumerable<string> Search(ISearchContext context, string query, Action<IEnumerable<string>> asyncItemsReceived)
    {
        var allPaths = AssetDatabase.GetAllAssetPaths();
        var filteredPaths = allPaths.Where(path => !path.StartsWith("Library")).Where(path => path.IndexOf(query, StringComparison.InvariantCultureIgnoreCase) >= 0).ToList();
        return filteredPaths;
    }
}
```

Additional Resources: [ProjectSearchEngineAttribute](/engine/6000.6/script-reference/unityeditor/searchservice/projectsearchengineattribute.md), [IProjectSearchEngine](/engine/6000.6/script-reference/unityeditor/searchservice/iprojectsearchengine.md).

## Static Fields

| Value                                                                                           | Description                                                                                                                                                                                                                                                  |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [EngineScope](/engine/6000.6/script-reference/unityeditor/searchservice/project/enginescope.md) | A enum that indicates the search scope for [Project](/engine/6000.6/script-reference/unityeditor/searchservice/project.md) engines. It is used by [ProjectSearchContext](/engine/6000.6/script-reference/unityeditor/searchservice/projectsearchcontext.md). |

## Static Methods

| Method                                                                                                    | Description                                    |
| --------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| [RegisterEngine](/engine/6000.6/script-reference/unityeditor/searchservice/project/registerengine.md)     | Registers a Project search engine dynamically. |
| [UnregisterEngine](/engine/6000.6/script-reference/unityeditor/searchservice/project/unregisterengine.md) | Unregisters a dynamically registered engine.   |
