Ultimate Hierarchy Pro is a Unity Extension to manage scenes and test different setups professionally. Switching between lighting setups, prototypes, level layouts, or script behaviours becomes more convenient. Via scripting, public methods of Ultimate Hierarchy Pro are easily accessible to suit your personal workflow.
Ultimate Hierarchy Pro
Ultimate Hierarchy Lite
To create a new Ultimate Hierarchy Pro (UHP) inside your scene, do one of the following:
If you prefer working with multiple UHPs, you can enable the UHP's Editor Window to manage your Scene's UHPs. You can find the UHP Editor Window in Unity's top menu: Window > Ultimate Hierarchy Pro.
To add objects to the list, drag any GameObject from your scene into the empty new slot, titled None (GameObject). You can also drag in a parent GameObject with other GameObjects as children, or a Prefab from your Project Window.
Select the aspect of your GameObject or Prefab you want to use in UHP. This could be a GameObject's Transform, Script or Component.
To control the object you can now use the buttons to the right of the slot, such as:
UHP's buttons work vice versa, so you will see changes made in the scene – for example at runtime – displayed in UHP. We recommend you to personalize UHP to suit your workflow, so feel free to use the color picker to adjust the colors of your lists.
You can unfold any GameObject or Prefab in UHP's list to see and edit its Transform: Position, Rotation, Scale.
You can unfold any Script or Component in UHP's list to see and edit its Default Inspector or your Custom Inspector.
As you can see, the GameObjects connected to UHP have markers in your chosen colors; therefore, you can always see which of your project's Objects are connected to UHP. You can also easily distinguish GameObjects from Components, etc. If a GameObject is connected to multiple UHPs the color of the latest, selected UHP will be displayed.
UHP's markers within Unity's Project Window offer the same functionality as within the Hierarchy Window. A possible additional usage could be the manipulation of Prefabs, Scripts or Components instantiated at runtime.
UHP provides four overlay options that can be toggled on and off. You can find the toggles either in the respective UHP's Inspector Window or in the UHP Editor Window (Unity's top menu > Window > Ultimate Hierarchy Pro).
As always, colors are as set in the UHP's Inspector (for more information, see Functionality > 3. Workflow above).
The displayed name within the Overlay's buttons is an abbreviation of the GameObject's name and type. For example, "Spotlight" of the type "UnityEngine.Light" becomes "Spotlight (UE.L)".
Game View Overlays are only visible during runtime. Toggle options for Game View are:
Toggle options for Scene View are:
If you want to access certain features of Ultimate Hierarchy Pro in your own scripts, for further editor extension or direct use in your project, you need to add the UltimateHierarchy namespace at the top of your script.
You can use it for simple concepts like a light switch and managing interfaces, or more complex systems. This example will activate the first Object (at position 0) inside the UltimateHierarchyPro instance on AnyGameObject and deactivate all other Objects.
AnyGameObject.GetComponent<UltimateHierachyPro> ().setSolo (0);
public bool getHoverGUI ();
public void setHoverGUI (bool b);
public void toggleHoverGUI ();
public bool getListGUI ();
public void setListGUI (bool b);
public void toggleListGUI ();
public bool getSceneGUI ();
public void setSceneGUI (bool b);
public void toggleSceneGUI ();
A custom made slot can be set up in the Inspector because the ObjectToggle-Slot is Serializable.
public void addSlot (Slot slot);
public void addGameObject (GameObject go);
public void removeGameObject (GameObject go);
public void delete (int id);
public bool getSolo (int id);
public void setSolo (int id, bool b);
public void toggleSolo (int id);
public bool getActive (int id);
public void setActive (int id, bool b);
public void toggleActive (int id);
public bool getUpdate (int id);
public void setUpdate (int id, bool b);
public void toggleUpdate (int id);
public bool getHide (int id);
public void setHide (int id, bool b);
public void toggleHide (int id);
public void setHideAll (bool b);
public void setActiveUpdateAll (Slot.ObjectType type, bool b);
public void flipAll (Slot.ObjectType type);
public bool hasObjectsOfType (Slot.ObjectType type);
public bool getTypeIdStartEnd (Slot.ObjectType type, ref int first, ref int last);
public string getShortString (string inputString);
public void setColor (Slot.ObjectType type, Color color);
public bool getGameObjectId (GameObject go, ref int id);
public int getListLength ();
public List<Slot> getList ();
public Slot getSlot (int id);
If you have any questions or feedback, mail us: firstname.lastname@example.org
We're always happy to get in touch with other Devs :).