使用此 API 在场景中执行搜索。此类型搜索的引擎实现 ISceneSearchEngine 接口。
注册的场景搜索引擎在场景层次结构中搜索期间被调用。当使用默认对象选择器时,它们也会被用于 GameObject 搜索。
以下示例创建了一个场景搜索引擎
using System; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEditor.SearchService; using UnityEngine; using Object = UnityEngine.Object;
[SceneSearchEngine] class TestSceneFilterEngine : ISceneSearchEngine { 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 bool Filter(ISearchContext context, string query, HierarchyProperty objectToFilter) { var instanceId = objectToFilter.instanceID; var obj = Object.FindObjectsOfType<GameObject>().FirstOrDefault(o => o.GetInstanceID() == instanceId); return obj != null && obj.name.IndexOf(query, StringComparison.InvariantCultureIgnoreCase) >= 0; } }
EngineScope | 一个枚举,指示 SceneSearch 引擎的搜索范围。它由 SceneSearchContext 使用。 |
RegisterEngine | 动态注册场景搜索引擎。 |
UnregisterEngine | 注销动态注册的引擎。 |