Editor extension: SOQ - find/select/inspect objects via complex conditions

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)

Now priced at 10$

Hi. I wanted to ask if it is still supported and If it still works in Unity 2018.3.6f1 ? Best Regards, David

Hey,

I’m using it by default in all of my projects, now on 2018.3.10. So it should work on that version too.

– Lucian