Ultimate Hierarchy Pro - Documentation

What is Ultimate Hierarchy Pro?

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.

Where can I get Ultimate Hierarchy?

Ultimate Hierarchy Pro

Ultimate Hierarchy Lite

Features

image

Setup

Simply import the folder containing Ultimate Hierarchy Pro into your project.

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.

Functionality

Adding, deleting and controlling GameObjects, Scripts and Components with Ultimate Hierarchy Pro:

  1. Adding

    image

    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.

  2. Controlling

    image

    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:

  3. Workflow

    image

    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.

Hands on! Use UHP to manage your GameObjects', Tranforms' or your Components' variables

  1. Manage a GameObject or Prefab:

    image

    You can unfold any GameObject or Prefab in UHP's list to see and edit its Transform: Position, Rotation, Scale.

  2. Manage a Script or Component:

    image

    You can unfold any Script or Component in UHP's list to see and edit its Default Inspector or your Custom Inspector.

Markers for Unity's Hierarchy Window and Project Window

  1. Hierarchy Window:

    image

    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.

  2. Project Window:

    image

    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.

Overlays for Scene View and Game View

  1. Manage Overlays in UHP's Inspector or UHP's Editor Window

    image image

    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).

  2. Color settings and naming conventions for Overlays

    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)".

  3. GameView: Hover and List

    image Game View Overlays are only visible during runtime. Toggle options for Game View are:

  4. Scene View: Wires and List

    image

    Toggle options for Scene View are:

Scripting workflow (all examples in C#)

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.

using UltimateHierarchy;

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);

Functions and Lists to access in any UltimateHierarchyPro instance:

HoverGUI

Check if the HoverGUI is shown.
public bool getHoverGUI ();
Set if the HoverGUI is shown.
public void setHoverGUI (bool b);
Toggle if the HoverGUI is shown.
public void toggleHoverGUI ();

ListGUI

Get if the ListGUI is shown.
public bool getListGUI ();
Set if the ListGUI is shown.
public void setListGUI (bool b);
Toggle if the ListGUI is shown.
public void toggleListGUI ();

SceneGUI

Get if the ListGUI is shown.
public bool getSceneGUI ();
Set if the ListGUI is shown.
public void setSceneGUI (bool b);
Toggle if the ListGUI is shown.
public void toggleSceneGUI ();

Adding and removing Slots

Add a custom made Slot item to the list.

A custom made slot can be set up in the Inspector because the ObjectToggle-Slot is Serializable.

public void addSlot (Slot slot);
Add a specific GameObject to the list.
public void addGameObject (GameObject go);
Remove a specific GameObject from the list.
public void removeGameObject (GameObject go);
Deletes a specific object.
public void delete (int id);

Solo

Return if a GameObject / Prefab / Script is turned ON (true) or OFF (false).
public bool getSolo (int id);
Set an Object to be the only one of its kind to be Active / Update or Disabled / not Updating.
public void setSolo (int id, bool b);
Toggle an Object to be the only one of its kind to be Active / Update or Disabled / not Updating.
public void toggleSolo (int id);

Active status

Get a specific objects Active status.
public bool getActive (int id);
Set a specific objects Active status.
public void setActive (int id, bool b);
Toggle a specific objects Active status.
public void toggleActive (int id);

Update status

Get a specific objects Update status.
public bool getUpdate (int id);
Set a specific objects Update status.
public void setUpdate (int id, bool b);
Toggle a specific objects Update status.
public void toggleUpdate (int id);

Hide status

Get a specific objects Hide status.
public bool getHide (int id);
Set a specific objects Hide status.
public void setHide (int id, bool b);
Toggle a specific objects Update status.
public void toggleHide (int id);
Set all (respective types) objects Hide status.
public void setHideAll (bool b);

Combined tasks

Set all (respective types) objects Active status.
public void setActiveUpdateAll (Slot.ObjectType type, bool b);
Flip all (respective types) objects Active status.
public void flipAll (Slot.ObjectType type);

References / Feedback

Find out if there are and objects of the respective type.
public bool hasObjectsOfType (Slot.ObjectType type);
Return if there are objects of the respective type and reference their first and last ID in the list.
public bool getTypeIdStartEnd (Slot.ObjectType type, ref int first, ref int last);

Additional methods

Returns the short version of a string. Example: "UltimateHierarchyPro" -> "UHP"
public string getShortString (string inputString);
Set the colors of this UltimateHierarchyPro instance.
public void setColor (Slot.ObjectType type, Color color);
Reference the ID of a specific GameObject in this UnityHierarchyPro instance and return if it is existing.
public bool getGameObjectId (GameObject go, ref int id);
Return the length of the Object list.
public int getListLength ();
Return the Object list.
public List<Slot> getList ();
Return a specific Slot in the Object list.
public Slot getSlot (int id);

Feedback and Questions

If you have any questions or feedback, mail us: talk@thetopicbird.com

We're always happy to get in touch with other Devs :).