扩展编辑器突出显示层次结构的问题

时间:2016-12-04 22:40:56

标签: unity3d unity3d-gui unity3d-editor

我对扩展Unity编辑器非常陌生,并拼凑了这个突出显示层次结构中所选对象的脚本。 问题是,当我在编辑器中并且堆栈顶部(场景名称)进入树中时,整个层次结构变得不可见!当我向下滚动以便场景名称变为在它看来它修复了自己。我附上了图片,让您更好地了解发生了什么。当我有一堆对象时,这个问题很小,但在新场景中无法使用。

[InitializeOnLoad]
public class HierarchyHighlighter
{
    static HierarchyHighlighter()
    {
        EditorApplication.hierarchyWindowItemOnGUI += HierarchyWindowItem_CB;
    }
    private static void HierarchyWindowItem_CB(int selectionID, Rect selectionRect)
    {
        Object o = EditorUtility.InstanceIDToObject(selectionID);
        if ((o as GameObject).GetComponent<HierarchyHighlighterComponent>() != null)
        {
            HierarchyHighlighterComponent h = (o as GameObject).GetComponent<HierarchyHighlighterComponent>();
            if (h.highlight)
            {
                if (Event.current.type == EventType.Repaint)
                {
                    GUI.backgroundColor = h.color;
                    GUI.Box(selectionRect, "");
                    GUI.backgroundColor = Color.white;
                    EditorApplication.RepaintHierarchyWindow();
                }
            }
        }
    }
}

控制台显示: “你调用的对象是空的” HierarchyHighlighter.HierarchyWindowItem_CB(Int32 selectionID,Rect selectionRect)(在Assets / HierarchyHighlighter.cs:18)

图片: Functioning as normal

Not functioning as normal

感谢您的帮助!

0 个答案:

没有答案