static void HierarchWindowOnGUI(int instanceID, Rect selectionRect)
    {
        selectionRect.x    += selectionRect.width - 30;
        selectionRect.width = 15;

        // Go through state switchers and draw on targets
        var allComponentCaches = ComponentCache.GetAllComponentCaches();

        for (int i = 0; i < allComponentCaches.Count; i++)
        {
            var componentCache = allComponentCaches[i];
            // foreach (var item in ComponentCacheEditor.m_totalTypeNameList)
            // {
            //  string typeName = item.ToString();
            //  if(typeName.Contains(".")){
            //      typeName = typeName.Substring(typeName.LastIndexOf(".") + 1);
            //  }
            //  RenderObjectInjection(instanceID, selectionRect, componentCache, typeName, componentCache.objectList);
            // }
            RenderInjection <ComponentCache.GameObject_Injection, GameObject>(instanceID, selectionRect, componentCache, "GameObject", componentCache.gameObjectList);
            RenderInjection <ComponentCache.Transform_Injection, Transform>(instanceID, selectionRect, componentCache, "Transform", componentCache.transformList);
            RenderInjection <ComponentCache.RectTransform_Injection, RectTransform>(instanceID, selectionRect, componentCache, "RectTransform", componentCache.rectTransformList);
            RenderInjection <ComponentCache.Image_Injection, Image>(instanceID, selectionRect, componentCache, "Image", componentCache.imageList);
            RenderInjection <ComponentCache.Text_Injection, Text>(instanceID, selectionRect, componentCache, "Text", componentCache.textList);
            RenderInjection <ComponentCache.Toggle_Injection, Toggle>(instanceID, selectionRect, componentCache, "Toggle", componentCache.toggleList);
            RenderInjection <ComponentCache.Button_Injection, Button>(instanceID, selectionRect, componentCache, "Button", componentCache.buttonList);
            RenderInjection <ComponentCache.Slider_Injection, Slider>(instanceID, selectionRect, componentCache, "Slider", componentCache.sliderList);
            RenderInjection <ComponentCache.ToggleGroup_Injection, ToggleGroup>(instanceID, selectionRect, componentCache, "ToggleGroup", componentCache.toggleGroupList);
            RenderInjection <ComponentCache.InputField_Injection, InputField>(instanceID, selectionRect, componentCache, "InputField", componentCache.inputFieldList);
            RenderInjection <ComponentCache.Graphic_Injection, Graphic>(instanceID, selectionRect, componentCache, "Graphic", componentCache.graphicList);
            RenderInjection <ComponentCache.ScrollRect_Injection, ScrollRect>(instanceID, selectionRect, componentCache, "ScrollRect", componentCache.scrollRectList);
            RenderInjection <ComponentCache.Scrollbar_Injection, Scrollbar>(instanceID, selectionRect, componentCache, "Scrollbar", componentCache.scrollbarList);
            RenderInjection <ComponentCache.Dropdown_Injection, Dropdown>(instanceID, selectionRect, componentCache, "Dropdown", componentCache.dropdownList);
            RenderInjection <ComponentCache.GridLayoutGroup_Injection, GridLayoutGroup>(instanceID, selectionRect, componentCache, "GridLayoutGroup", componentCache.gridLayoutGroupList);
            RenderInjection <ComponentCache.RawImage_Injection, RawImage>(instanceID, selectionRect, componentCache, "RawImage", componentCache.rawImageList);
            RenderInjection <ComponentCache.AudioSource_Injection, AudioSource>(instanceID, selectionRect, componentCache, "AudioSource", componentCache.audioSourceList);
            RenderInjection <ComponentCache.QuickGrid_Injection, littlerbird.UI.QuickGrid>(instanceID, selectionRect, componentCache, "QuickGrid", componentCache.quickGridList);
            RenderInjection <ComponentCache.SimpleScrollView_Injection, SimpleScrollView>(instanceID, selectionRect, componentCache, "SimpleScrollView", componentCache.simpleScrollViewList);
            RenderInjection <ComponentCache.Animation_Injection, Animation>(instanceID, selectionRect, componentCache, "Animation", componentCache.animationList);
            RenderInjection <ComponentCache.Animator_Injection, Animator>(instanceID, selectionRect, componentCache, "Animator", componentCache.animatorList);
            RenderInjection <ComponentCache.SpriteAtlas_Injection, SpriteAtlas>(instanceID, selectionRect, componentCache, "SpriteAtlas", componentCache.spriteAtlasList);
            RenderInjection <ComponentCache.SpriteHolder_Injection, SpriteHolder>(instanceID, selectionRect, componentCache, "SpriteHolder", componentCache.spriteHolderList);
            RenderInjection <ComponentCache.UIStateSwitcher_Injection, UIStateSwitcher>(instanceID, selectionRect, componentCache, "UIStateSwitcher", componentCache.uiStateSwitcherList);
            RenderInjection <ComponentCache.TextWrap_Injection, TextWrap>(instanceID, selectionRect, componentCache, "TextWrap", componentCache.textWrapList);
            RenderInjection <ComponentCache.UIImageAnimation_Injection, UIImageAnimation>(instanceID, selectionRect, componentCache, "UIImageAnimation", componentCache.uiImageAnimList);
            RenderInjection <ComponentCache.ComponentCache_Injection, ComponentCache>(instanceID, selectionRect, componentCache, "ComponentCache", componentCache.cacheList);
        }
    }