Each time an object is (or a group of objects are) created, renamed, parented, unparented or destroyed this callback is raised.
using UnityEditor; using UnityEngine; public class ExampleCode { [MenuItem ("Example/Hierarchy Window Changed")] static void Example () { EditorApplication.hierarchyWindowChanged += ExampleCallback; } static void ExampleCallback () { Object[] all = Resources.FindObjectsOfTypeAll (typeof (Object)); Debug.Log ("There are " + all.Length + " objects at the moment."); } }