62 lines
2.3 KiB
C#
Raw Normal View History

2025-09-08 14:51:28 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;
using UnityEditorInternal;
namespace SuperTreeView
{
[CustomEditor(typeof(TreeViewItem))]
public class TreeViewItemEditor : Editor
{
SerializedProperty mUseOverridedConfig;
SerializedProperty mOverridedChildTreeItemPadding;
SerializedProperty mOverridedChildTreeIndent;
SerializedProperty mOverridedChildTreeListPadding;
protected virtual void OnEnable()
{
mUseOverridedConfig = serializedObject.FindProperty("mUseOverridedConfig");
mOverridedChildTreeItemPadding = serializedObject.FindProperty("mOverridedChildTreeItemPadding");
mOverridedChildTreeIndent = serializedObject.FindProperty("mOverridedChildTreeIndent");
mOverridedChildTreeListPadding = serializedObject.FindProperty("mOverridedChildTreeListPadding");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
TreeViewItem tTreeViewItem = serializedObject.targetObject as TreeViewItem;
if (tTreeViewItem == null)
{
return;
}
bool useOverridedConfig = mUseOverridedConfig.boolValue;
EditorGUILayout.PropertyField(mUseOverridedConfig, new GUIContent("UseOverridedConfig"));
if (mUseOverridedConfig.boolValue)
{
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(mOverridedChildTreeItemPadding, new GUIContent("OverridedChildTreeItemPadding"));
EditorGUILayout.PropertyField(mOverridedChildTreeIndent, new GUIContent("OverridedChildTreeIndent"));
EditorGUILayout.PropertyField(mOverridedChildTreeListPadding, new GUIContent("OverridedChildTreeListPadding"));
if (EditorGUI.EndChangeCheck())
{
tTreeViewItem.RootTreeView.NeedRepositionAll = true;
}
}
if (useOverridedConfig != mUseOverridedConfig.boolValue)
{
tTreeViewItem.RootTreeView.NeedRepositionAll = true;
}
serializedObject.ApplyModifiedProperties();
}
}
}