Hi guys! Hi girls!
We want to announce that we’ve just released SOQ - Scene Objects Query. In a nutshell, it’s a flexible way of finding game objects in the scene. But there’s more than that.

Ever wanted to find 1 or more GameObjects that meet such a complex condition that you immediately realized there can’t be a built-in way for that particular case? Did you start writing your own editor script just for that?
Or worse, did you search for the GameObject(s) manually, in a scene with 1000+ GameObjects?
SOQ saves you hell of a lot of time by letting you conveniently construct arbitrarily-complex conditions (that can be saved for later use) and query the entire scene for GameObjects meeting their criteria.
Just a few, few examples: you can find what objects are visible to the camera, objects with a specific name, tag, position range, objects that have a null field, objects that DON’T satisfy a condition. The power of SOQ lies in the fact that you can nest conditions arbitrarily and also extend the built-in ones easily.
Asset Store: Link
The asset’s manual was attached below
Core features:
- intuitive UI. Controls are conveniently placed for best user experience
- select some scene objects to search in their hierarchies only, rather than in the entire scene
- construct complex/nested conditions, easily add/remove conditions to/from anywhere in the query’s hierarchy
- expand/collapse certain conditions to save space, visually
- immediately convert an OR chain to an AND chain by pressing on its name (presented as a button)
- immediately negate a condition by pressing on its id (presented as a button)
- separate search results panel
- click search result to highlight in hierarchy, double-click to focus in the scene view, optionally(toggle) auto-select in scene view
- optionally display an Inspector window for the selected search result(s) (independent from the main Inspector)
- optionally Auto-save the query every few seconds for later use. The query is always saved when the scene is
- Deep Search: optionally search through the children of the selected objects (no objects selected means all of the scene’s roots are selected)
- works in Edit/Play mode
Built-in condition types:
- ANDedConditionsChain
- ORedConditionsChain
- WithName
- WithParentName
- WithComponent
- WithPropertyAdvanced (the most used one): query a specific field in the GameObject itself or one of its components. For fields that can be compared with each other (e.g. ints, floats, Vectors, Bounds), you can specify a min/max value .
You guessed it, you can construct a very complex hierarchy of conditions (e.g. putting a chain inside another chain etc.)
The WithPropertyAdvanced will almost always meet your needs, yet you can write your own condition by extending QueryCondition (this is the base class) - and it’s very easy, see the attached manual.
Full C# source code included
Roadmap:
- we plan to actively support this asset once it gains momentum, as there’s a lot of room for growth in terms of features
- separate the query module from the editor GUI so it can be used on any device at runtime
- maybe provide more built-in conditions, but only essential ones, in order to keep the conditions drop-down clean
- we’d like to also query the objects from the project panel, not only the scene ones
3039678–227610–SOQ - Manual.pdf (1.09 MB)