Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Easy Select - Declarative Selections

Discussion in 'Works In Progress - Archive' started by Jlpeebles, Dec 22, 2014.

  1. Jlpeebles

    Jlpeebles

    Joined:
    Oct 21, 2012
    Posts:
    54
    Easy Select enables the user to select objects in a declarative rather than imperative manner. Normally the user must look through the hierarchy or results of a hierarchy search and select objects manually. With Easy Select the user 'describes' what they would like to select by manipulating the criteria of a filter then specifying a context.

    Say you have a Room object with various lights spread throughout the child object tree. Selecting all the lights in the room is as simple as selecting Room then applying a filter targeting Light components to the deep children of the active selection.

    Want to mess with the intensity value of each Light in your selection? Go to the Bulk Inspector, target Light components, then target the Intensity property. Controls for the intensity from each Light in the selection will appear in a column.

    Details

    Filters

    Below is the default filter, it contains only some of the possible criteria (described further below). It is meant to be used as an easy go-to window sufficient for most filtering needs.

    DefaultFilter.png

    Also present are custom filters, the user may add critera to it as they please. Want to select objects that have two particular components? No problem, just add two component name criteria. Or add ten of them, fill commonly desired component names out, and toggle them on/off as needed.

    Quick Selection Windows

    There are a few of these windows implemented currently, the most significant being the Saved Filters window. Find yourself wanting to make the same kind of selection over and over? Create and save a filter and re-use it in varying contexts.

    SavedFilters.png

    The Transform Relation and Prefab quick selection windows.

    EasySelectPicsQSW.png

    Bulk Inspector

    Target specific components or properties across multiple GameObjects

    BulkInspector.png

    Criteria
    Criteria are inserted into Filters and determine which GameObjects pass through the filter.
    (Currently implemented)
    - Active State (Active In Hierarchy, Active Self, ect.)
    - Component or MonoScript (Can be left null to select objects with missing components, can allow selecting of subclasses)
    - Layer Mask/Tag Mask
    - Single Layer/Single Tag
    - Component Name
    - GameObject Name
    - Prefab Match (Can also assign a object from inside of a prefab to select that instead of the root)
    - Prefab Status (Is/Is Not prefab)
    - Prefab Type (Unity's built in PrefabType)
    - Transform Relation (Is the criterion parallel of the "In Active Selection's" menu item)

    Ideas Moving Forward (NOT IMPLEMENTED)

    Sub-Hierarchies
    - Would be possible to open with a selection or a filter. If opened with a filter the context would be saved allowing for updating when the Hierarchy changes.
    - The object tree could be collapsed instead of flattened. (Ex. A is the parent of B which is the parent of C, A and C are sent to a Sub-Hierarchy -> C will appear to be the direct child of A, B will not be present at all). This would allow for isolating important portions of the hierarchy while preserving the relative structure.

    Criteria
    - Transform variables (Position, Scale, Rotation) (x,y,z) (>, <, >=, <=, ==, !=)
    - Serialized Property Name + Value (Could be pretty interesting)
    - Passes Saved Filter (Would allow for combining filters)

    Quick Selection Windows
    - Tags
    - Layers

    Other
    - Compound Filter (Allowing the user to get objects obeying Filter || Filter ect, not sure how useful that would be, at least at this point in time)
    - Customize-able hotkeys (If enough people want this) (Would be just for saved filters at first probably)
    - Add results of filter to active selection using active selection contexts (instead of only from the entire scene)

    This will be my first Asset Store package, I hope you guys find it interesting! Thoughts and suggestions would be greatly appreciated! I hope to have something submitted shortly after the holidays. Pricing suggestions welcome too.
     
    Last edited: Dec 23, 2014
  2. Jlpeebles

    Jlpeebles

    Joined:
    Oct 21, 2012
    Posts:
    54
    Updated with a preview of the Bulk Inspector
     
  3. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Nothing constructive to offer currently, but this sounds excellent. I'm a huge proponent of quality selection tools (not just in Unity but say Maya/Max) and am actually surprised how often I find them lacking.

    Good job man!