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) { }