FetchGameObjects
Utility function to fetch all the game objects in a particular scene.
Read time 2 minutesLast updated 6 days ago
Definition
- Type: Method
- Namespace: UnityEditor.Search
- Assembly: UnityEditor
FetchGameObjects(Scene)
Utility function to fetch all the game objects in a particular scene.
public static GameObject[] FetchGameObjects(Scene scene)
Parameters
Scene to get objects from.
Returns
Type | Description |
|---|---|
| GameObject[] | The array of game objects in the scene. |
Remarks
Use to create a custom SearchProvider that is able to access current scene objects.
SearchUtils.FetchGameObjectsExamples
static void OnEnable(){ s_GameObjects = SearchUtils.FetchGameObjects().ToArray(); s_QueryEngine = new QueryEngine<GameObject>(); // Id supports all operators s_QueryEngine.AddFilter("id", go => go.GetEntityId()); // Name supports only :, = and != s_QueryEngine.AddFilter("n", go => go.name, new[] {":", "=", "!="}); // Add distance filtering. Does not support :. s_QueryEngine.AddFilter("dist", DistanceHandler, DistanceParamHandler, new[] {"=", "!=", "<", ">", "<=", ">="});}
static IEnumerator SearchItems(SearchContext context, SearchProvider provider){ var query = s_QueryEngine.ParseQuery(context.searchQuery); if (!query.valid) yield break; var filteredObjects = query.Apply(s_GameObjects); foreach (var filteredObject in filteredObjects) { yield return provider.CreateItem(filteredObject.GetEntityId().ToString(), null, null, null, filteredObject.GetEntityId()); }}
FetchGameObjects()
Utility function to fetch all the game objects in a particular scene.
public static IEnumerable<GameObject> FetchGameObjects()
Returns
Type | Description |
|---|---|
| IEnumerable<GameObject> | The array of game objects in the scene. |
Remarks
Use to create a custom SearchProvider that is able to access current scene objects.
SearchUtils.FetchGameObjectsExamples
static void OnEnable(){ s_GameObjects = SearchUtils.FetchGameObjects().ToArray(); s_QueryEngine = new QueryEngine<GameObject>(); // Id supports all operators s_QueryEngine.AddFilter("id", go => go.GetEntityId()); // Name supports only :, = and != s_QueryEngine.AddFilter("n", go => go.name, new[] {":", "=", "!="}); // Add distance filtering. Does not support :. s_QueryEngine.AddFilter("dist", DistanceHandler, DistanceParamHandler, new[] {"=", "!=", "<", ">", "<=", ">="});}
static IEnumerator SearchItems(SearchContext context, SearchProvider provider){ var query = s_QueryEngine.ParseQuery(context.searchQuery); if (!query.valid) yield break; var filteredObjects = query.Apply(s_GameObjects); foreach (var filteredObject in filteredObjects) { yield return provider.CreateItem(filteredObject.GetEntityId().ToString(), null, null, null, filteredObject.GetEntityId()); }}