protected override void OnRightGUI(CZMenuTreeViewItem _selectedItem)
 {
     if (_selectedItem.userData is UnityObject unityObject)
     {
         if (!EditorCache.TryGetValue(unityObject.GetType(), out Editor editor))
             EditorCache[unityObject.GetType()] = editor = Editor.CreateEditor(unityObject);
         editor.OnInspectorGUI();
     }
 }
        protected override void RowGUI(RowGUIArgs args)
        {
            base.RowGUI(args);
            CZMenuTreeViewItem item = args.item as CZMenuTreeViewItem;

            if (item != null)
            {
                item.itemDrawer?.Invoke(args.rowRect, item);
            }
        }
        protected virtual void OnRightGUI(CZMenuTreeViewItem _selectedItem)
        {
            if (_selectedItem == null)
            {
                return;
            }
            switch (_selectedItem.userData)
            {
            case null:
                GUILayout.Space(10);
                GUILayout.BeginHorizontal();
                GUILayout.Space(20);
                GUILayout.Label(_selectedItem.displayName, (GUIStyle)"AM MixerHeader2");
                GUILayout.EndHorizontal();
                GUILayout.Space(5);
                EditorGUI.DrawRect(GUILayoutUtility.GetRect(rightRect.width, 1), Color.gray);
                break;

            case UnityObject unityObject:
                if (unityObject == null)
                {
                    break;
                }
                if (!EditorCache.TryGetValue(unityObject, out Editor editor))
                {
                    EditorCache[unityObject] = editor = Editor.CreateEditor(unityObject);
                }
                editor.OnInspectorGUI();
                Repaint();
                break;

            default:
                if (!ObjectEditorCache.TryGetValue(_selectedItem.userData, out ObjectEditor objectEditor))
                {
                    ObjectEditorCache[_selectedItem.userData] = objectEditor = ObjectEditor.CreateEditor(_selectedItem.userData);
                }
                objectEditor.OnInspectorGUI();
                break;
            }
        }
 protected virtual void OnRightGUI(CZMenuTreeViewItem _selectedItem)
 {
 }