Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 static bl_HierarchyEditor()
 {
     m_Data = Resources.Load("HierarchyData", typeof(bl_HierarchyData)) as bl_HierarchyData;
     EditorApplication.hierarchyWindowItemOnGUI += DrawHierarchy;
     EditorApplication.projectWindowChanged     += UpdateObjects;
     EditorApplication.hierarchyWindowChanged   += UpdateObjects;
     EditorApplication.playmodeStateChanged     += UpdateObjects;
 }
 void OnEnable()
 {
     m_Data = Resources.Load("HierarchyData", typeof(bl_HierarchyData)) as bl_HierarchyData;
     if (m_Data != null)
     {
         DataSerialized              = new SerializedObject(m_Data);
         TagList                     = new ReorderableList(DataSerialized, DataSerialized.FindProperty("m_HierarchyTagsIcons"), true, true, false, false);
         TagList.drawHeaderCallback  = OnDrawHeader;
         TagList.drawElementCallback = OnDrawElement;
     }
 }
Ejemplo n.º 3
0
    /// <summary>
    ///
    /// </summary>
    private static void UpdateObjects()
    {
        if (m_Data == null)
        {
            m_Data = Resources.Load("HierarchyData", typeof(bl_HierarchyData)) as bl_HierarchyData;
        }
        //This is for performance due this is called up to 4 times in each draw frame and we don't that

        // refresh tag list
        m_Data.RefreshTags();
        //get all objects in hierarchy (active objects).
        GameObject[] go = Object.FindObjectsOfType(typeof(GameObject)) as GameObject[];
        for (int i = 0; i < go.Length; i++)
        {
            m_Data.RegisterObject(go[i]);
        }
    }
Ejemplo n.º 4
0
    public override void OnInspectorGUI()
    {
        bl_HierarchyData hd = (bl_HierarchyData)target;

        serializedObject.Update();
        TagList.DoLayoutList();
        serializedObject.ApplyModifiedProperties();

        GUILayout.BeginVertical("box");
        GUILayout.Label("Settings", EditorStyles.boldLabel);
        hd.ShowIcons          = EditorGUILayout.ToggleLeft("Show Icons", hd.ShowIcons, EditorStyles.toolbarButton);
        hd.HorizontalPosition = EditorGUILayout.Slider("Horizontal Position", hd.HorizontalPosition, 0, 200);
        GUILayout.EndVertical();
        if (GUI.changed)
        {
            EditorUtility.SetDirty(hd);
        }
    }